@applemusic-like-lyrics/core 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +3 -3
  2. package/dist/amll-core.cjs +5267 -0
  3. package/dist/amll-core.cjs.map +1 -0
  4. package/dist/amll-core.d.cts +1009 -0
  5. package/dist/amll-core.d.mts +1009 -0
  6. package/dist/{amll-core.js → amll-core.mjs} +391 -5838
  7. package/dist/amll-core.mjs.map +1 -0
  8. package/dist/style.css +396 -0
  9. package/package.json +69 -84
  10. package/LICENSE +0 -661
  11. package/dist/amll-core.css +0 -2
  12. package/dist/amll-core.js.map +0 -1
  13. package/dist/bg-render/base.d.ts +0 -109
  14. package/dist/bg-render/img.d.ts +0 -4
  15. package/dist/bg-render/index.d.ts +0 -28
  16. package/dist/bg-render/mesh-renderer/cp-generate.d.ts +0 -6
  17. package/dist/bg-render/mesh-renderer/cp-presets.d.ts +0 -22
  18. package/dist/bg-render/mesh-renderer/index.d.ts +0 -76
  19. package/dist/bg-render/pixi-renderer.d.ts +0 -22
  20. package/dist/canvas-test.d.ts +0 -1
  21. package/dist/index.d.ts +0 -4
  22. package/dist/interfaces.d.ts +0 -106
  23. package/dist/lyric-player/base.d.ts +0 -327
  24. package/dist/lyric-player/bottom-line.d.ts +0 -29
  25. package/dist/lyric-player/canvas/index.d.ts +0 -24
  26. package/dist/lyric-player/canvas/lyric-line.d.ts +0 -24
  27. package/dist/lyric-player/canvas/text-layout.d.ts +0 -39
  28. package/dist/lyric-player/dom/index.d.ts +0 -59
  29. package/dist/lyric-player/dom/interlude-dots.d.ts +0 -22
  30. package/dist/lyric-player/dom/lyric-line.d.ts +0 -80
  31. package/dist/lyric-player/dom-slim/index.d.ts +0 -38
  32. package/dist/lyric-player/dom-slim/interlude-dots.d.ts +0 -22
  33. package/dist/lyric-player/dom-slim/lyric-line.d.ts +0 -69
  34. package/dist/lyric-player/index.d.ts +0 -29
  35. package/dist/mg-test.d.ts +0 -1
  36. package/dist/utils/debounce.d.ts +0 -2
  37. package/dist/utils/derivative.d.ts +0 -2
  38. package/dist/utils/eq-set.d.ts +0 -1
  39. package/dist/utils/flagsets.d.ts +0 -17
  40. package/dist/utils/is-cjk.d.ts +0 -1
  41. package/dist/utils/linear.d.ts +0 -21
  42. package/dist/utils/lyric-split-words.d.ts +0 -11
  43. package/dist/utils/matrix.d.ts +0 -25
  44. package/dist/utils/mutex.d.ts +0 -2
  45. package/dist/utils/optimize-lyric.d.ts +0 -9
  46. package/dist/utils/resource.d.ts +0 -4
  47. package/dist/utils/schedule.d.ts +0 -6
  48. package/dist/utils/spring.d.ts +0 -26
  49. package/dist/utils/wa-spring.d.ts +0 -27
@@ -1,69 +0,0 @@
1
- import { LyricLine, LyricWord } from '../../interfaces.ts';
2
- import { LyricLineBase } from '../base.ts';
3
- import { DomSlimLyricPlayer } from './index.ts';
4
- interface RealWord extends LyricWord {
5
- mainElement: HTMLSpanElement;
6
- subElements: HTMLSpanElement[];
7
- elementAnimations: Animation[];
8
- maskAnimations: Animation[];
9
- width: number;
10
- height: number;
11
- padding: number;
12
- shouldEmphasize: boolean;
13
- }
14
- export declare class RawLyricLineMouseEvent extends MouseEvent {
15
- readonly line: LyricLineEl;
16
- constructor(line: LyricLineEl, event: MouseEvent);
17
- }
18
- type MouseEventMap = {
19
- [evt in keyof HTMLElementEventMap]: HTMLElementEventMap[evt] extends MouseEvent ? evt : never;
20
- };
21
- type MouseEventTypes = MouseEventMap[keyof MouseEventMap];
22
- type MouseEventListener = (this: LyricLineEl, ev: RawLyricLineMouseEvent) => void;
23
- export declare class LyricLineEl extends LyricLineBase {
24
- private lyricPlayer;
25
- private lyricLine;
26
- private element;
27
- private splittedWords;
28
- lineSize: number[];
29
- constructor(lyricPlayer: DomSlimLyricPlayer, lyricLine?: LyricLine);
30
- private listenersMap;
31
- private readonly onMouseEvent;
32
- addMouseEventListener(type: MouseEventTypes, callback: MouseEventListener | null, options?: boolean | AddEventListenerOptions | undefined): void;
33
- removeMouseEventListener(type: MouseEventTypes, callback: MouseEventListener | null, options?: boolean | EventListenerOptions | undefined): void;
34
- areWordsOnSameLine(word1: RealWord, word2: RealWord): boolean;
35
- private isEnabled;
36
- enable(maskAnimationTime?: number): Promise<void>;
37
- disable(): void;
38
- private lastWord?;
39
- resume(): Promise<void>;
40
- pause(): Promise<void>;
41
- setMaskAnimationState(maskAnimationTime?: number): void;
42
- private measureLockMark;
43
- private measureLock;
44
- getLine(): LyricLine;
45
- show(): void;
46
- hide(): void;
47
- private rebuildStyle;
48
- private getRubySegments;
49
- private buildWordElement;
50
- rebuildElement(): void;
51
- private initEmphasizeAnimation;
52
- private get totalDuration();
53
- private maskImageDirty;
54
- private markImageDirtyPromiseResolve;
55
- private markImageDirtyPromise;
56
- markMaskImageDirty(_debugReason?: string): Promise<void>;
57
- waitMaskImageUpdated(): Promise<void>;
58
- updateMaskImage(): Promise<void>;
59
- private generateCalcBasedMaskImage;
60
- private generateWebAnimationBasedMaskImage;
61
- getElement(): HTMLElement;
62
- setTransform(top?: number, scale?: number, opacity?: number, blur?: number, force?: boolean, delay?: number): void;
63
- update(delta?: number): void;
64
- _getDebugTargetPos(): string;
65
- get isInSight(): boolean;
66
- private disposeElements;
67
- dispose(): void;
68
- }
69
- export {};
@@ -1,29 +0,0 @@
1
- import { DomLyricPlayer } from './dom/index.ts';
2
- export { LyricPlayerBase } from './base.ts';
3
- export * from './canvas/index.ts';
4
- export * from './dom/index.ts';
5
- export * from './dom-slim/index.ts';
6
- /**
7
- * 歌词中不雅用语的掩码模式
8
- */
9
- declare enum MaskObsceneWordsMode {
10
- /** 禁用任何不雅用语掩码 */
11
- Disabled = "",
12
- /** 完全掩码所有不雅用语 */
13
- FullMask = "full-mask",
14
- /** 保留首尾字符,屏蔽中间字符 */
15
- PartialMask = "partial-mask"
16
- }
17
- /**
18
- * 歌词行的渲染模式
19
- * @internal
20
- */
21
- declare enum LyricLineRenderMode {
22
- SOLID = 0,
23
- GRADIENT = 1
24
- }
25
- export {
26
- /**
27
- * 默认导出的歌词播放组件
28
- */
29
- DomLyricPlayer as LyricPlayer, LyricLineRenderMode, MaskObsceneWordsMode, };
package/dist/mg-test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- export declare function debounce<T extends Function>(cb: T, wait?: number): (...args: any) => void;
2
- export declare function debounceFrame<T extends Function>(cb: T, frameTime?: number): (...args: any) => void;
@@ -1,2 +0,0 @@
1
- export declare function derivative(f: (x: number) => number): (x: number) => number;
2
- export declare function getVelocity(f: (t: number) => number): (t: number) => number;
@@ -1 +0,0 @@
1
- export declare const eqSet: <T>(xs: Set<T>, ys: Set<T>) => boolean;
@@ -1,17 +0,0 @@
1
- export declare class FlagSets {
2
- private flags;
3
- private _size;
4
- get size(): number;
5
- [Symbol.iterator](): {
6
- next: () => {
7
- value: number;
8
- done: boolean;
9
- } | {
10
- value: undefined;
11
- done: boolean;
12
- };
13
- };
14
- add(flag: number): void;
15
- delete(flag: number): void;
16
- has(flag: number): boolean;
17
- }
@@ -1 +0,0 @@
1
- export declare const isCJK: (char: string) => boolean;
@@ -1,21 +0,0 @@
1
- export interface LinearParams {
2
- duration: number;
3
- }
4
- export declare class Linear {
5
- private currentPosition;
6
- private targetPosition;
7
- private currentTime;
8
- private params;
9
- private currentSolver;
10
- private startTime;
11
- private queueParams;
12
- private queuePosition;
13
- constructor(currentPosition?: number);
14
- private resetSolver;
15
- arrived(): boolean;
16
- setPosition(targetPosition: number): void;
17
- update(delta?: number): void;
18
- updateParams(params: Partial<LinearParams>, delay?: number): void;
19
- setTargetPosition(targetPosition: number, delay?: number): void;
20
- getCurrentPosition(): number;
21
- }
@@ -1,11 +0,0 @@
1
- import { LyricWord } from '../interfaces.ts';
2
- /**
3
- * 将输入的单词重新分组,之间没有空格的单词将会组合成一个单词数组
4
- *
5
- * 例如输入:`["Life", " ", "is", " a", " su", "gar so", "sweet"]`
6
- *
7
- * 应该返回:`["Life", " ", "is", " a", [" su", "gar"], "so", "sweet"]`
8
- * @param words 输入的单词数组
9
- * @returns 重新分组后的单词数组
10
- */
11
- export declare function chunkAndSplitLyricWords(words: LyricWord[]): (LyricWord | LyricWord[])[];
@@ -1,25 +0,0 @@
1
- export type Matrix4 = [
2
- number,
3
- number,
4
- number,
5
- number,
6
- number,
7
- number,
8
- number,
9
- number,
10
- number,
11
- number,
12
- number,
13
- number,
14
- number,
15
- number,
16
- number,
17
- number
18
- ];
19
- export declare function createMatrix4(): Matrix4;
20
- export declare function scaleMatrix4(m: Matrix4, scale?: number, origin?: {
21
- x: number;
22
- y: number;
23
- }): Matrix4;
24
- export declare function translateMatrix4(m: Matrix4, x?: number, y?: number, z?: number): Matrix4;
25
- export declare function matrix4ToCSS(m: Matrix4, fractionDigits?: number): string;
@@ -1,2 +0,0 @@
1
- export declare function mutexifyFunction<F extends (...args: Args) => Promise<Result>, Args extends any[], Result>(func: F): F;
2
- export default mutexifyFunction;
@@ -1,9 +0,0 @@
1
- import { LyricLine, OptimizeLyricOptions } from '../interfaces.ts';
2
- /**
3
- * 优化歌词行的展示效果
4
- *
5
- * 注意会直接原地修改入参,确保你已经提前深克隆了歌词行数组
6
- * @param lines 歌词行数组
7
- * @param options 优化的可选配置,默认全部开启
8
- */
9
- export declare function optimizeLyricLines(lines: LyricLine[], options?: OptimizeLyricOptions): void;
@@ -1,4 +0,0 @@
1
- export declare function loadImage(imageUrl: string): Promise<HTMLImageElement>;
2
- export declare function loadVideo(videoUrl: string): Promise<HTMLVideoElement>;
3
- export declare function loadResourceFromUrl(url: string, isVideo?: boolean): Promise<HTMLImageElement | HTMLVideoElement>;
4
- export declare function loadResourceFromElement(element: HTMLImageElement | HTMLVideoElement): Promise<HTMLImageElement | HTMLVideoElement>;
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview
3
- * @see https://github.com/wilsonpage/fastdom/blob/master/fastdom.js
4
- */
5
- export declare function measure<T>(callback: () => T): Promise<T>;
6
- export declare function mutate(callback: () => void): Promise<unknown>;
@@ -1,26 +0,0 @@
1
- /** MIT License github.com/pushkine/ */
2
- export interface SpringParams {
3
- mass: number;
4
- damping: number;
5
- stiffness: number;
6
- soft: boolean;
7
- }
8
- export declare class Spring {
9
- private currentPosition;
10
- private targetPosition;
11
- private currentTime;
12
- private params;
13
- private currentSolver;
14
- private getV;
15
- private getV2;
16
- private queueParams;
17
- private queuePosition;
18
- constructor(currentPosition?: number);
19
- private resetSolver;
20
- arrived(): boolean;
21
- setPosition(targetPosition: number): void;
22
- update(delta?: number): void;
23
- updateParams(params: Partial<SpringParams>, delay?: number): void;
24
- setTargetPosition(targetPosition: number, delay?: number): void;
25
- getCurrentPosition(): number;
26
- }
@@ -1,27 +0,0 @@
1
- import { Disposable } from '../interfaces.ts';
2
- type CSSStyleKeys = {
3
- [Style in keyof CSSStyleDeclaration]: Style extends string ? CSSStyleDeclaration[Style] extends string ? Style : never : never;
4
- }[keyof CSSStyleDeclaration];
5
- /**
6
- * 基于 Web Animation API 的弹簧动画工具类,效果上可能逊于实时演算的版本
7
- */
8
- export declare class WebAnimationSpring extends EventTarget implements Disposable {
9
- private element;
10
- private styleName;
11
- private valueGenerator;
12
- private currentPosition;
13
- private currentAnimation;
14
- private targetPosition;
15
- private isStatic;
16
- private currentSolver;
17
- private getV;
18
- constructor(element: HTMLElement, styleName: CSSStyleKeys, valueGenerator: (value: number) => string, currentPosition?: number);
19
- makeStatic(): void;
20
- setTargetPosition(targetPosition: number): void;
21
- getCurrentPosition(): number;
22
- getCurrentVelocity(): number;
23
- private onStepFinished;
24
- stop(): void;
25
- dispose(): void;
26
- }
27
- export {};