lisn.js
Version:
Simply handle user gestures and actions. Includes widgets.
1 lines • 16.9 kB
Source Map (JSON)
{"version":3,"file":"transform.cjs","names":["MH","_interopRequireWildcard","require","_cssAlter","_math","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Transform","constructor","init","selfM","newMatrix","callbacks","perspective","addCallback","callback","push","toMatrix","relativeTo","m","relM","inverse","multiply","toFloat32Array","toString","reset","m12","m13","m14","m21","m23","m24","m31","m32","m34","m41","m42","m43","m11","m22","m33","m44","offsets","res","isString","translate","_callback","x","y","z","validateInputs","translateSelf","scale","_callback2","s","sx","sy","sz","origin","scaleSelf","skew","_callback3","deg","degX","degY","skewXSelf","skewYSelf","rotate","_callback4","_axis$","_axis$2","axis","sum","rotateAxisAngleSelf","apply","element","setStyleProp","exports","readonly","initM","isInstanceOf","DOMMatrixReadOnly","DOMMatrix","isNullish","arrayFrom","name","inputs","requireNonZero","isValidNum","abs","usageError"],"sources":["../../../src/ts/effects/transform.ts"],"sourcesContent":["/**\n * @module Effects/Transform\n *\n * @since v1.3.0\n */\n\nimport * as MH from \"@lisn/globals/minification-helpers\";\n\nimport { AtLeastOne, Axis, Origin } from \"@lisn/globals/types\";\n\nimport { setStyleProp } from \"@lisn/utils/css-alter\";\nimport { isValidNum, sum } from \"@lisn/utils/math\";\n\nimport { Effect, EffectCallback, ScrollOffsets } from \"@lisn/effects/effect\";\n\n/**\n * {@link Transform} controls an element's transform a 3D transform matrix.\n */\nexport class Transform implements Effect {\n /**\n * Returns a {@link https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrixReadOnly | DOMMatrixReadOnly} representing the transform.\n *\n * @param relativeTo If given, then this matrix is first inverted and used as\n * a pre-multiplication\n */\n readonly toMatrix: (\n relativeTo?: Transform | DOMMatrix | Float32Array,\n ) => DOMMatrixReadOnly;\n\n /**\n * Returns a {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array | Float32Array} representing the transform.\n *\n * @param relativeTo See {@link toMatrix}\n */\n readonly toFloat32Array: (\n relativeTo?: Transform | DOMMatrix | Float32Array,\n ) => Float32Array;\n\n /**\n * Returns a `perspective(...) matrix3d(...)` string for use as a CSS property.\n *\n * If no perspective has been set, it's omitted from the string.\n *\n * @param relativeTo See {@link toMatrix}\n */\n readonly toString: (\n relativeTo?: Transform | DOMMatrix | Float32Array,\n ) => string;\n\n /**\n * Resets the transformation back to the default (identity) one.\n */\n readonly reset: () => Transform;\n\n /**\n * Sets the transform's perspective. Perspective applies at the start of\n * transforms and subsequent calls to this method always override previous\n * ones.\n *\n * @param callback The callback that returns the perspective as a number (in\n * pixels) or CSS perspective string\n *\n * @returns The same {@link Transform} instance.\n */\n readonly perspective: (\n callback: EffectCallback<number | string>,\n ) => Transform;\n\n /**\n * Translates the transform.\n *\n * @param callback The callback that returns one or more of:\n * - x The translation distance in pixels along the X-axis.\n * - y The translation distance in pixels along the Y-axis.\n * - z The translation distance in pixels along the Z-axis.\n *\n * @returns The same {@link Transform} instance.\n */\n readonly translate: (\n callback: EffectCallback<AtLeastOne<{ x: number; y: number; z: number }>>,\n ) => Transform;\n\n /**\n * Scales the transform.\n *\n * @param callback The callback that returns one or more of:\n * - s The default scaling factor for any axis if not\n * overridden by sx, sy or sz.\n * - sx The translation distance in pixels along the X-axis.\n * - sy The translation distance in pixels along the Y-axis.\n * - sz The translation distance in pixels along the Z-axis.\n * - origin The transform origin\n *\n * @returns The same {@link Transform} instance.\n */\n readonly scale: (\n callback: EffectCallback<\n AtLeastOne<{ s: number; sx: number; sy: number; sz: number }> & {\n origin?: Origin;\n }\n >,\n ) => Transform;\n\n /**\n * Skews the transform. If skewing along both axis (i.e. both `degX` and\n * `degY` given, or `deg` is given), then skewing is done first along X, then\n * along Y.\n *\n * @param callback The callback that returns one or more of:\n * - deg The skewing angle in degrees for either axis if not\n * overridden by degX or degY.\n * - degX The skewing angle in degrees along the X-axis.\n * - degY The skewing angle in degrees along the Y-axis.\n *\n * @returns The same {@link Transform} instance.\n */\n readonly skew: (\n callback: EffectCallback<\n AtLeastOne<{ deg: number; degX: number; degY: number }>\n >,\n ) => Transform;\n\n /**\n * Rotates the transform around the given axis.\n *\n * @param callback The callback that returns one or more of:\n * - deg The angle in degrees to rotate.\n * - axis The axis of rotation. Default is Z-axis.\n *\n * @returns The same {@link Transform} instance.\n */\n readonly rotate: (\n callback: EffectCallback<{ deg: number; axis?: Axis }>,\n ) => Transform;\n\n /**\n * Applies all transforms for the given scroll offsets.\n *\n * @throws {@link Errors.LisnUsageError | LisnUsageError}\n * If any of the values returned by the {@link EffectCallback}\n * s is invalid.\n *\n * @returns The same {@link Transform} instance.\n */\n readonly apply: (element: Element, offsets: ScrollOffsets) => Transform;\n\n constructor(init?: Transform | DOMMatrix | Float32Array) {\n const selfM = newMatrix(false, init);\n const callbacks: EffectCallback<void>[] = [];\n let perspective = \"\";\n\n const addCallback = (callback: EffectCallback<void>) =>\n callbacks.push(callback);\n\n const toMatrix = (relativeTo?: Transform | DOMMatrix | Float32Array) => {\n const m = newMatrix(true, selfM);\n const relM = relativeTo ? newMatrix(true, relativeTo) : null;\n return relM ? relM.inverse().multiply(m) : m;\n };\n\n this.toMatrix = toMatrix;\n this.toFloat32Array = (relativeTo) => toMatrix(relativeTo).toFloat32Array();\n this.toString = (relativeTo) =>\n (perspective ? `perspective(${perspective}) ` : \"\") +\n toMatrix(relativeTo).toString();\n\n this.reset = () => {\n selfM.m12 =\n selfM.m13 =\n selfM.m14 =\n selfM.m21 =\n selfM.m23 =\n selfM.m24 =\n selfM.m31 =\n selfM.m32 =\n selfM.m34 =\n selfM.m41 =\n selfM.m42 =\n selfM.m43 =\n 0;\n selfM.m11 = selfM.m22 = selfM.m33 = selfM.m44 = 1;\n return this;\n };\n\n this.perspective = (callback) => {\n addCallback((offsets) => {\n const res = callback(offsets);\n perspective = res ? (MH.isString(res) ? res : `${res}px`) : \"\";\n });\n return this;\n };\n\n this.translate = (callback) => {\n addCallback((offsets) => {\n const { x = 0, y = 0, z = 0 } = callback(offsets) ?? {};\n validateInputs(\"Translate distance\", [x, y, z]);\n selfM.translateSelf(x, y, z);\n });\n return this;\n };\n\n this.scale = (callback) => {\n addCallback((offsets) => {\n const {\n s = 1,\n sx = s,\n sy = s,\n sz = s,\n origin = [0, 0, 0],\n } = callback(offsets) ?? {};\n validateInputs(\"Scale factor\", [sx, sy, sz], true);\n validateInputs(\"Origin\", origin);\n selfM.scaleSelf(sx, sy, sz, ...origin);\n });\n return this;\n };\n\n this.skew = (callback) => {\n addCallback((offsets) => {\n const { deg = 0, degX = deg, degY = deg } = callback(offsets) ?? {};\n validateInputs(\"Skew angle\", [degX, degY]);\n selfM.skewXSelf(degX).skewYSelf(degY);\n });\n return this;\n };\n\n this.rotate = (callback) => {\n addCallback((offsets) => {\n const { deg = 0, axis = [0, 0, 1] } = callback(offsets) ?? {};\n validateInputs(\"Rotation angle\", [deg]);\n validateInputs(\"Rotation axis\", [sum(...axis)], true);\n selfM.rotateAxisAngleSelf(axis[0], axis[1] ?? 0, axis[2] ?? 0, deg);\n });\n return this;\n };\n\n this.apply = (element, offsets) => {\n for (const callback of callbacks) {\n callback(offsets);\n }\n\n setStyleProp(element, \"transform\", this.toString());\n return this;\n };\n }\n}\n\n// ----------------------------------------\n\nconst newMatrix = <B extends boolean>(\n readonly: B,\n init?: Transform | DOMMatrix | Float32Array,\n) => {\n const initM = MH.isInstanceOf(init, Transform) ? init.toMatrix() : init;\n return new (readonly ? DOMMatrixReadOnly : DOMMatrix)(\n MH.isNullish(initM)\n ? initM\n : MH.arrayFrom(\n MH.isInstanceOf(initM, DOMMatrixReadOnly)\n ? initM.toFloat32Array()\n : initM,\n ),\n ) as typeof readonly extends true ? DOMMatrixReadOnly : DOMMatrix;\n};\n\nconst validateInputs = (\n name: string,\n inputs: number[],\n requireNonZero = false,\n) => {\n for (const i of inputs) {\n if (!isValidNum(i) || (requireNonZero && MH.abs(i) < 1e-10)) {\n throw MH.usageError(\n `${name} must be finite${requireNonZero ? \" and non-zero\" : \"\"}`,\n );\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}