@galacean/effects-specification 2.8.1 → 2.9.0

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 (87) hide show
  1. package/es/components/dom-content-component-data.d.ts +26 -0
  2. package/es/components/dom-content-component-data.js +1 -0
  3. package/es/components/index.d.ts +2 -0
  4. package/es/components/index.js +2 -0
  5. package/es/components/ui-control/aspect-ratio-container-data.d.ts +8 -0
  6. package/es/components/ui-control/aspect-ratio-container-data.js +1 -0
  7. package/es/components/ui-control/base-button-data.d.ts +10 -0
  8. package/es/components/ui-control/base-button-data.js +1 -0
  9. package/es/components/ui-control/box-container-data.d.ts +6 -0
  10. package/es/components/ui-control/box-container-data.js +1 -0
  11. package/es/components/ui-control/button-data.d.ts +13 -0
  12. package/es/components/ui-control/button-data.js +1 -0
  13. package/es/components/ui-control/center-container-data.d.ts +4 -0
  14. package/es/components/ui-control/center-container-data.js +1 -0
  15. package/es/components/ui-control/check-button-data.d.ts +3 -0
  16. package/es/components/ui-control/check-button-data.js +1 -0
  17. package/es/components/ui-control/checkbox-data.d.ts +3 -0
  18. package/es/components/ui-control/checkbox-data.js +1 -0
  19. package/es/components/ui-control/color-picker-button-data.d.ts +6 -0
  20. package/es/components/ui-control/color-picker-button-data.js +1 -0
  21. package/es/components/ui-control/color-picker-data.d.ts +6 -0
  22. package/es/components/ui-control/color-picker-data.js +1 -0
  23. package/es/components/ui-control/color-rect-data.d.ts +5 -0
  24. package/es/components/ui-control/color-rect-data.js +1 -0
  25. package/es/components/ui-control/control-data.d.ts +29 -0
  26. package/es/components/ui-control/control-data.js +1 -0
  27. package/es/components/ui-control/grid-container-data.d.ts +4 -0
  28. package/es/components/ui-control/grid-container-data.js +1 -0
  29. package/es/components/ui-control/index.d.ts +32 -0
  30. package/es/components/ui-control/index.js +32 -0
  31. package/es/components/ui-control/label-data.d.ts +9 -0
  32. package/es/components/ui-control/label-data.js +1 -0
  33. package/es/components/ui-control/line-edit-data.d.ts +7 -0
  34. package/es/components/ui-control/line-edit-data.js +1 -0
  35. package/es/components/ui-control/margin-container-data.d.ts +3 -0
  36. package/es/components/ui-control/margin-container-data.js +1 -0
  37. package/es/components/ui-control/menu-button-data.d.ts +5 -0
  38. package/es/components/ui-control/menu-button-data.js +1 -0
  39. package/es/components/ui-control/nine-patch-rect-data.d.ts +17 -0
  40. package/es/components/ui-control/nine-patch-rect-data.js +1 -0
  41. package/es/components/ui-control/option-button-data.d.ts +4 -0
  42. package/es/components/ui-control/option-button-data.js +1 -0
  43. package/es/components/ui-control/panel-data.d.ts +3 -0
  44. package/es/components/ui-control/panel-data.js +1 -0
  45. package/es/components/ui-control/popup-menu-data.d.ts +11 -0
  46. package/es/components/ui-control/popup-menu-data.js +1 -0
  47. package/es/components/ui-control/progress-bar-data.d.ts +6 -0
  48. package/es/components/ui-control/progress-bar-data.js +1 -0
  49. package/es/components/ui-control/range-data.d.ts +12 -0
  50. package/es/components/ui-control/range-data.js +1 -0
  51. package/es/components/ui-control/rect-data.d.ts +5 -0
  52. package/es/components/ui-control/rect-data.js +1 -0
  53. package/es/components/ui-control/scroll-bar-data.d.ts +4 -0
  54. package/es/components/ui-control/scroll-bar-data.js +1 -0
  55. package/es/components/ui-control/scroll-container-data.d.ts +13 -0
  56. package/es/components/ui-control/scroll-container-data.js +1 -0
  57. package/es/components/ui-control/serialized-enums.d.ts +12 -0
  58. package/es/components/ui-control/serialized-enums.js +1 -0
  59. package/es/components/ui-control/slider-data.d.ts +5 -0
  60. package/es/components/ui-control/slider-data.js +1 -0
  61. package/es/components/ui-control/text-edit-data.d.ts +3 -0
  62. package/es/components/ui-control/text-edit-data.js +1 -0
  63. package/es/components/ui-control/text-input-data.d.ts +7 -0
  64. package/es/components/ui-control/text-input-data.js +1 -0
  65. package/es/components/ui-control/texture-rect-data.d.ts +12 -0
  66. package/es/components/ui-control/texture-rect-data.js +1 -0
  67. package/es/components/ui-control/theme-data.d.ts +54 -0
  68. package/es/components/ui-control/theme-data.js +1 -0
  69. package/es/components/ui-control/ui-control-data.d.ts +9 -0
  70. package/es/components/ui-control/ui-control-data.js +1 -0
  71. package/es/components/ui-control/ui-control-type.d.ts +2 -0
  72. package/es/components/ui-control/ui-control-type.js +1 -0
  73. package/es/composition.d.ts +2 -2
  74. package/es/data-type.d.ts +38 -0
  75. package/es/data-type.js +39 -0
  76. package/es/index.d.ts +2 -1
  77. package/es/index.js +1 -0
  78. package/es/item/base-item.d.ts +18 -6
  79. package/es/item/sprite-item.d.ts +5 -0
  80. package/es/number-expression.d.ts +5 -1
  81. package/es/number-expression.js +4 -0
  82. package/es/scene.d.ts +2 -1
  83. package/es/scene.js +2 -1
  84. package/es/sprite.d.ts +39 -0
  85. package/es/sprite.js +11 -0
  86. package/es/type.d.ts +1 -0
  87. package/package.json +11 -13
@@ -0,0 +1,26 @@
1
+ import type { MaskableGraphicData } from './maskable-graphic-data';
2
+ /**
3
+ * DOM 内容组件数据
4
+ * 将 HTML/CSS 渲染为纹理,运行时由开发者通过 setContent 手动驱动
5
+ */
6
+ export interface DomContentComponentData extends MaskableGraphicData {
7
+ /**
8
+ * HTML 内容字符串
9
+ */
10
+ htmlContent: string;
11
+ /**
12
+ * 内容宽度(CSS 像素)
13
+ * @default 300
14
+ */
15
+ contentWidth: number;
16
+ /**
17
+ * 内容高度(CSS 像素)
18
+ * @default 200
19
+ */
20
+ contentHeight: number;
21
+ /**
22
+ * 内容缩放系数,纹理尺寸 = content* × contentScale
23
+ * @default 1
24
+ */
25
+ contentScale: number;
26
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -4,3 +4,5 @@ export * from './ffd-data';
4
4
  export * from './frame-component-data';
5
5
  export * from './maskable-graphic-data';
6
6
  export * from './orientation-component-data';
7
+ export * from './dom-content-component-data';
8
+ export * from './ui-control';
@@ -4,3 +4,5 @@ export * from './ffd-data';
4
4
  export * from './frame-component-data';
5
5
  export * from './maskable-graphic-data';
6
6
  export * from './orientation-component-data';
7
+ export * from './dom-content-component-data';
8
+ export * from './ui-control';
@@ -0,0 +1,8 @@
1
+ import type { ControlData } from './control-data';
2
+ import type { AspectRatioStretchMode, LayoutAlignment } from './serialized-enums';
3
+ export interface AspectRatioContainerData extends ControlData {
4
+ ratio?: number;
5
+ stretchMode?: AspectRatioStretchMode;
6
+ horizontalAlignment?: LayoutAlignment;
7
+ verticalAlignment?: LayoutAlignment;
8
+ }
@@ -0,0 +1,10 @@
1
+ import type { ControlData } from './control-data';
2
+ import type { ButtonActionMode } from './serialized-enums';
3
+ export interface BaseButtonData extends ControlData {
4
+ disabled?: boolean;
5
+ toggleMode?: boolean;
6
+ buttonPressed?: boolean;
7
+ buttonMask?: number;
8
+ actionMode?: ButtonActionMode;
9
+ keepPressedOutside?: boolean;
10
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { ControlData } from './control-data';
2
+ import type { LayoutAlignment } from './serialized-enums';
3
+ export interface BoxContainerData extends ControlData {
4
+ alignment?: LayoutAlignment;
5
+ reverse?: boolean;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { DataPath } from '../component-data';
2
+ import type { BaseButtonData } from './base-button-data';
3
+ import type { HorizontalAlignment, VerticalAlignment } from './serialized-enums';
4
+ export interface ButtonData extends BaseButtonData {
5
+ text?: string;
6
+ icon?: DataPath | null;
7
+ flat?: boolean;
8
+ clipText?: boolean;
9
+ expandIcon?: boolean;
10
+ textAlignment?: HorizontalAlignment;
11
+ iconAlignment?: HorizontalAlignment;
12
+ iconVerticalAlignment?: VerticalAlignment;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { ControlData } from './control-data';
2
+ export interface CenterContainerData extends ControlData {
3
+ useTopLeft?: boolean;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ButtonData } from './button-data';
2
+ export interface CheckButtonData extends ButtonData {
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ButtonData } from './button-data';
2
+ export interface CheckboxData extends ButtonData {
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { ColorData } from '../../math/color-data';
2
+ import type { ButtonData } from './button-data';
3
+ export interface ColorPickerButtonData extends ButtonData {
4
+ color?: ColorData;
5
+ editAlpha?: boolean;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { ColorData } from '../../math/color-data';
2
+ import type { ControlData } from './control-data';
3
+ export interface ColorPickerData extends ControlData {
4
+ color?: ColorData;
5
+ editAlpha?: boolean;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { ColorData } from '../../math/color-data';
2
+ import type { ControlData } from './control-data';
3
+ export interface ColorRectData extends ControlData {
4
+ color?: ColorData;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ import type { vec2 } from '../../number-expression';
2
+ import type { ThemeOverridesData } from './theme-data';
3
+ /** Common serialized properties shared by every GUI control. */
4
+ export interface ControlData {
5
+ anchorMin?: vec2;
6
+ anchorMax?: vec2;
7
+ offsetMin?: vec2;
8
+ offsetMax?: vec2;
9
+ pivot?: vec2;
10
+ scale?: vec2;
11
+ shear?: vec2;
12
+ rotation?: number;
13
+ customMinimumSize?: vec2;
14
+ customMaximumSize?: vec2;
15
+ horizontalSizeFlags?: number;
16
+ verticalSizeFlags?: number;
17
+ stretchRatio?: number;
18
+ horizontalGrowDirection?: number;
19
+ verticalGrowDirection?: number;
20
+ mouseFilter?: number;
21
+ mouseBehaviorRecursive?: number;
22
+ mouseForcePassScrollEvents?: boolean;
23
+ focusMode?: number;
24
+ focusBehaviorRecursive?: number;
25
+ defaultCursorShape?: number | string;
26
+ clipContents?: boolean;
27
+ themeTypeVariation?: string;
28
+ themeOverrides?: ThemeOverridesData;
29
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { ControlData } from './control-data';
2
+ export interface GridContainerData extends ControlData {
3
+ columns?: number;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ export * from './aspect-ratio-container-data';
2
+ export * from './base-button-data';
3
+ export * from './box-container-data';
4
+ export * from './button-data';
5
+ export * from './center-container-data';
6
+ export * from './check-button-data';
7
+ export * from './checkbox-data';
8
+ export * from './color-picker-button-data';
9
+ export * from './color-picker-data';
10
+ export * from './color-rect-data';
11
+ export * from './control-data';
12
+ export * from './grid-container-data';
13
+ export * from './label-data';
14
+ export * from './line-edit-data';
15
+ export * from './margin-container-data';
16
+ export * from './menu-button-data';
17
+ export * from './nine-patch-rect-data';
18
+ export * from './option-button-data';
19
+ export * from './panel-data';
20
+ export * from './popup-menu-data';
21
+ export * from './progress-bar-data';
22
+ export * from './range-data';
23
+ export * from './rect-data';
24
+ export * from './scroll-bar-data';
25
+ export * from './scroll-container-data';
26
+ export * from './slider-data';
27
+ export * from './text-edit-data';
28
+ export * from './text-input-data';
29
+ export * from './texture-rect-data';
30
+ export * from './theme-data';
31
+ export * from './ui-control-data';
32
+ export * from './ui-control-type';
@@ -0,0 +1,32 @@
1
+ export * from './aspect-ratio-container-data';
2
+ export * from './base-button-data';
3
+ export * from './box-container-data';
4
+ export * from './button-data';
5
+ export * from './center-container-data';
6
+ export * from './check-button-data';
7
+ export * from './checkbox-data';
8
+ export * from './color-picker-button-data';
9
+ export * from './color-picker-data';
10
+ export * from './color-rect-data';
11
+ export * from './control-data';
12
+ export * from './grid-container-data';
13
+ export * from './label-data';
14
+ export * from './line-edit-data';
15
+ export * from './margin-container-data';
16
+ export * from './menu-button-data';
17
+ export * from './nine-patch-rect-data';
18
+ export * from './option-button-data';
19
+ export * from './panel-data';
20
+ export * from './popup-menu-data';
21
+ export * from './progress-bar-data';
22
+ export * from './range-data';
23
+ export * from './rect-data';
24
+ export * from './scroll-bar-data';
25
+ export * from './scroll-container-data';
26
+ export * from './slider-data';
27
+ export * from './text-edit-data';
28
+ export * from './text-input-data';
29
+ export * from './texture-rect-data';
30
+ export * from './theme-data';
31
+ export * from './ui-control-data';
32
+ export * from './ui-control-type';
@@ -0,0 +1,9 @@
1
+ import type { ControlData } from './control-data';
2
+ import type { AutowrapMode, HorizontalAlignment, TextOverflow, VerticalAlignment } from './serialized-enums';
3
+ export interface LabelData extends ControlData {
4
+ text?: string;
5
+ horizontalAlignment?: HorizontalAlignment;
6
+ verticalAlignment?: VerticalAlignment;
7
+ autowrapMode?: AutowrapMode;
8
+ textOverflow?: TextOverflow;
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { HorizontalAlignment } from './serialized-enums';
2
+ import type { TextInputData } from './text-input-data';
3
+ export interface LineEditData extends TextInputData {
4
+ secret?: boolean;
5
+ secretCharacter?: string;
6
+ alignment?: HorizontalAlignment;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ControlData } from './control-data';
2
+ export interface MarginContainerData extends ControlData {
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { ButtonData } from './button-data';
2
+ import type { PopupMenuItemData } from './popup-menu-data';
3
+ export interface MenuButtonData extends ButtonData {
4
+ items?: PopupMenuItemData[];
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { ColorData } from '../../math/color-data';
2
+ import type { DataPath } from '../component-data';
3
+ import type { ControlData } from './control-data';
4
+ import type { RectData } from './rect-data';
5
+ import type { AxisStretchMode } from './serialized-enums';
6
+ export interface NinePatchRectData extends ControlData {
7
+ texture?: DataPath | null;
8
+ regionRect?: RectData;
9
+ patchMarginLeft?: number;
10
+ patchMarginTop?: number;
11
+ patchMarginRight?: number;
12
+ patchMarginBottom?: number;
13
+ drawCenter?: boolean;
14
+ horizontalAxisStretchMode?: AxisStretchMode;
15
+ verticalAxisStretchMode?: AxisStretchMode;
16
+ tint?: ColorData;
17
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { MenuButtonData } from './menu-button-data';
2
+ export interface OptionButtonData extends MenuButtonData {
3
+ selected?: number;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ControlData } from './control-data';
2
+ export interface PanelData extends ControlData {
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { ControlData } from './control-data';
2
+ export interface PopupMenuItemData {
3
+ id: number | string;
4
+ text: string;
5
+ disabled?: boolean;
6
+ separator?: boolean;
7
+ checked?: boolean;
8
+ }
9
+ export interface PopupMenuData extends ControlData {
10
+ items?: PopupMenuItemData[];
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { RangeData } from './range-data';
2
+ import type { ProgressFillMode } from './serialized-enums';
3
+ export interface ProgressBarData extends RangeData {
4
+ showPercentage?: boolean;
5
+ fillMode?: ProgressFillMode;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { ControlData } from './control-data';
2
+ export interface RangeData extends ControlData {
3
+ minValue?: number;
4
+ maxValue?: number;
5
+ step?: number;
6
+ page?: number;
7
+ value?: number;
8
+ exponentialRatio?: boolean;
9
+ rounded?: boolean;
10
+ allowGreater?: boolean;
11
+ allowLesser?: boolean;
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { vec2 } from '../../number-expression';
2
+ export interface RectData {
3
+ position: vec2;
4
+ size: vec2;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { RangeData } from './range-data';
2
+ export interface ScrollBarData extends RangeData {
3
+ customStep?: number;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { ControlData } from './control-data';
2
+ import type { ScrollMode } from './serialized-enums';
3
+ export interface ScrollContainerData extends ControlData {
4
+ hScroll?: number;
5
+ vScroll?: number;
6
+ horizontalScrollMode?: ScrollMode;
7
+ verticalScrollMode?: ScrollMode;
8
+ horizontalCustomStep?: number;
9
+ verticalCustomStep?: number;
10
+ scrollHorizontalByDefault?: boolean;
11
+ deadzone?: number;
12
+ followFocus?: boolean;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ export type LayoutAlignment = 0 | 1 | 2;
2
+ export type AspectRatioStretchMode = 0 | 1 | 2 | 3;
3
+ export type ScrollMode = 0 | 1 | 2 | 3 | 4 | 5;
4
+ export type HorizontalAlignment = 0 | 1 | 2 | 3;
5
+ export type VerticalAlignment = 0 | 1 | 2 | 3;
6
+ export type AutowrapMode = 0 | 1 | 2 | 3;
7
+ export type TextOverflow = 0 | 1 | 2;
8
+ export type TextureExpandMode = 0 | 1 | 2 | 3 | 4 | 5;
9
+ export type TextureStretchMode = 0 | 1 | 2 | 3 | 4 | 5 | 6;
10
+ export type AxisStretchMode = 0 | 1 | 2;
11
+ export type ButtonActionMode = 0 | 1;
12
+ export type ProgressFillMode = 0 | 1 | 2 | 3;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { RangeData } from './range-data';
2
+ export interface SliderData extends RangeData {
3
+ editable?: boolean;
4
+ scrollable?: boolean;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { TextInputData } from './text-input-data';
2
+ export interface TextEditData extends TextInputData {
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { ControlData } from './control-data';
2
+ export interface TextInputData extends ControlData {
3
+ text?: string;
4
+ placeholderText?: string;
5
+ editable?: boolean;
6
+ maxLength?: number;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { ColorData } from '../../math/color-data';
2
+ import type { DataPath } from '../component-data';
3
+ import type { ControlData } from './control-data';
4
+ import type { TextureExpandMode, TextureStretchMode } from './serialized-enums';
5
+ export interface TextureRectData extends ControlData {
6
+ texture?: DataPath | null;
7
+ expandMode?: TextureExpandMode;
8
+ stretchMode?: TextureStretchMode;
9
+ flipH?: boolean;
10
+ flipV?: boolean;
11
+ tint?: ColorData;
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ import type { ColorData } from '../../math/color-data';
2
+ import type { FontStyle } from '../../text';
3
+ import type { DataPath } from '../component-data';
4
+ import type { RectData } from './rect-data';
5
+ export type FontWeight = 'normal' | 'bold' | number;
6
+ export interface ThemeFontData {
7
+ family: string;
8
+ weight?: FontWeight;
9
+ style?: FontStyle;
10
+ }
11
+ export interface StyleBoxMarginsData {
12
+ left?: number;
13
+ top?: number;
14
+ right?: number;
15
+ bottom?: number;
16
+ }
17
+ export interface StyleBoxEmptyData {
18
+ type: 'empty';
19
+ contentMargins?: StyleBoxMarginsData;
20
+ }
21
+ export interface StyleBoxFlatData {
22
+ type: 'flat';
23
+ backgroundColor?: ColorData;
24
+ borderColor?: ColorData;
25
+ borderWidths?: StyleBoxMarginsData;
26
+ cornerRadii?: StyleBoxMarginsData;
27
+ contentMargins?: StyleBoxMarginsData;
28
+ }
29
+ export interface StyleBoxTextureData {
30
+ type: 'texture';
31
+ texture: DataPath | null;
32
+ sourceRect?: RectData;
33
+ patchMargins?: StyleBoxMarginsData;
34
+ contentMargins?: StyleBoxMarginsData;
35
+ horizontalAxisStretchMode?: number;
36
+ verticalAxisStretchMode?: number;
37
+ drawCenter?: boolean;
38
+ tint?: ColorData;
39
+ }
40
+ export type StyleBoxData = StyleBoxEmptyData | StyleBoxFlatData | StyleBoxTextureData;
41
+ export interface ThemeItemCollectionData {
42
+ colors?: Record<string, ColorData>;
43
+ constants?: Record<string, number>;
44
+ fonts?: Record<string, ThemeFontData>;
45
+ fontSizes?: Record<string, number>;
46
+ icons?: Record<string, DataPath | null>;
47
+ styleBoxes?: Record<string, StyleBoxData>;
48
+ }
49
+ export interface ThemeData {
50
+ types: Record<string, ThemeItemCollectionData>;
51
+ variations?: Record<string, string>;
52
+ }
53
+ export interface ThemeOverridesData extends ThemeItemCollectionData {
54
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { DataType } from '../../data-type';
2
+ import type { ComponentData } from '../component-data';
3
+ import type { ControlData } from './control-data';
4
+ import type { UIControlType } from './ui-control-type';
5
+ export interface UIControlData extends ComponentData {
6
+ dataType: DataType.UIControl;
7
+ control: UIControlType;
8
+ data: ControlData;
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { DataType } from '../../data-type';
2
+ export type UIControlType = DataType.Control | DataType.Container | DataType.HBoxContainer | DataType.VBoxContainer | DataType.GridContainer | DataType.PanelContainer | DataType.MarginContainer | DataType.CenterContainer | DataType.AspectRatioContainer | DataType.ScrollContainer | DataType.HScrollBar | DataType.VScrollBar | DataType.HSeparator | DataType.VSeparator | DataType.Label | DataType.LineEdit | DataType.TextEdit | DataType.PopupPanel | DataType.PopupMenu | DataType.MenuButton | DataType.OptionButton | DataType.ColorPicker | DataType.ColorPickerButton | DataType.TextureRect | DataType.NinePatchRect | DataType.ColorRect | DataType.Panel | DataType.ProgressBar | DataType.Button | DataType.Checkbox | DataType.CheckButton | DataType.HSlider | DataType.VSlider;
@@ -0,0 +1 @@
1
+ export {};
@@ -91,7 +91,7 @@ export interface Composition extends CompositionBase {
91
91
  */
92
92
  export interface CompositionData extends CompositionBase {
93
93
  /**
94
- * @description 组件数据
94
+ * 组件数据
95
95
  */
96
96
  components: DataPath[];
97
97
  /**
@@ -104,7 +104,7 @@ export interface CompositionData extends CompositionBase {
104
104
  */
105
105
  export interface CompositionComponentData extends ComponentData {
106
106
  /**
107
- * @description 合成组件类型 - 固定为 CompositionComponent
107
+ * 合成组件类型 - 固定为 CompositionComponent
108
108
  */
109
109
  dataType: DataType.CompositionComponent;
110
110
  /**
package/es/data-type.d.ts CHANGED
@@ -7,6 +7,7 @@ export declare enum DataType {
7
7
  Image = "Image",
8
8
  AnimationClip = "AnimationClip",
9
9
  BinaryAsset = "BinaryAsset",
10
+ Sprite = "Sprite",
10
11
  TrackAsset = "TrackAsset",
11
12
  TimelineAsset = "TimelineAsset",
12
13
  ObjectBindingTrack = "ObjectBindingTrack",
@@ -19,6 +20,7 @@ export declare enum DataType {
19
20
  Vector2PropertyTrack = "Vector2PropertyTrack",
20
21
  Vector3PropertyTrack = "Vector3PropertyTrack",
21
22
  Vector4PropertyTrack = "Vector4PropertyTrack",
23
+ SpritePropertyTrack = "SpritePropertyTrack",
22
24
  TransformPlayableAsset = "TransformPlayableAsset",
23
25
  SpriteColorPlayableAsset = "SpriteColorPlayableAsset",
24
26
  ActivationPlayableAsset = "ActivationPlayableAsset",
@@ -28,6 +30,7 @@ export declare enum DataType {
28
30
  Vector2PropertyPlayableAsset = "Vector2PropertyPlayableAsset",
29
31
  Vector3PropertyPlayableAsset = "Vector3PropertyPlayableAsset",
30
32
  Vector4PropertyPlayableAsset = "Vector4PropertyPlayableAsset",
33
+ SpritePropertyPlayableAsset = "SpritePropertyPlayableAsset",
31
34
  MeshComponent = "MeshComponent",
32
35
  SkyboxComponent = "SkyboxComponent",
33
36
  LightComponent = "LightComponent",
@@ -53,5 +56,40 @@ export declare enum DataType {
53
56
  FFDComponent = "FFDComponent",
54
57
  FrameComponent = "FrameComponent",
55
58
  Animator = "Animator",
59
+ DomContentComponent = "DomContentComponent",
60
+ UIControl = "UIControl",
61
+ Control = "Control",
62
+ Container = "Container",
63
+ HBoxContainer = "HBoxContainer",
64
+ VBoxContainer = "VBoxContainer",
65
+ GridContainer = "GridContainer",
66
+ PanelContainer = "PanelContainer",
67
+ MarginContainer = "MarginContainer",
68
+ CenterContainer = "CenterContainer",
69
+ AspectRatioContainer = "AspectRatioContainer",
70
+ ScrollContainer = "ScrollContainer",
71
+ HScrollBar = "HScrollBar",
72
+ VScrollBar = "VScrollBar",
73
+ HSeparator = "HSeparator",
74
+ VSeparator = "VSeparator",
75
+ Label = "Label",
76
+ LineEdit = "LineEdit",
77
+ TextEdit = "TextEdit",
78
+ PopupPanel = "PopupPanel",
79
+ PopupMenu = "PopupMenu",
80
+ MenuButton = "MenuButton",
81
+ OptionButton = "OptionButton",
82
+ ColorPicker = "ColorPicker",
83
+ ColorPickerButton = "ColorPickerButton",
84
+ TextureRect = "TextureRect",
85
+ NinePatchRect = "NinePatchRect",
86
+ ColorRect = "ColorRect",
87
+ Panel = "Panel",
88
+ ProgressBar = "ProgressBar",
89
+ Button = "Button",
90
+ Checkbox = "Checkbox",
91
+ CheckButton = "CheckButton",
92
+ HSlider = "HSlider",
93
+ VSlider = "VSlider",
56
94
  TimelineClip = "TimelineClip"
57
95
  }
package/es/data-type.js CHANGED
@@ -9,6 +9,7 @@ export var DataType;
9
9
  DataType["Image"] = "Image";
10
10
  DataType["AnimationClip"] = "AnimationClip";
11
11
  DataType["BinaryAsset"] = "BinaryAsset";
12
+ DataType["Sprite"] = "Sprite";
12
13
  // Timeline
13
14
  DataType["TrackAsset"] = "TrackAsset";
14
15
  DataType["TimelineAsset"] = "TimelineAsset";
@@ -22,6 +23,7 @@ export var DataType;
22
23
  DataType["Vector2PropertyTrack"] = "Vector2PropertyTrack";
23
24
  DataType["Vector3PropertyTrack"] = "Vector3PropertyTrack";
24
25
  DataType["Vector4PropertyTrack"] = "Vector4PropertyTrack";
26
+ DataType["SpritePropertyTrack"] = "SpritePropertyTrack";
25
27
  DataType["TransformPlayableAsset"] = "TransformPlayableAsset";
26
28
  DataType["SpriteColorPlayableAsset"] = "SpriteColorPlayableAsset";
27
29
  DataType["ActivationPlayableAsset"] = "ActivationPlayableAsset";
@@ -31,6 +33,7 @@ export var DataType;
31
33
  DataType["Vector2PropertyPlayableAsset"] = "Vector2PropertyPlayableAsset";
32
34
  DataType["Vector3PropertyPlayableAsset"] = "Vector3PropertyPlayableAsset";
33
35
  DataType["Vector4PropertyPlayableAsset"] = "Vector4PropertyPlayableAsset";
36
+ DataType["SpritePropertyPlayableAsset"] = "SpritePropertyPlayableAsset";
34
37
  // Components
35
38
  DataType["MeshComponent"] = "MeshComponent";
36
39
  DataType["SkyboxComponent"] = "SkyboxComponent";
@@ -57,6 +60,42 @@ export var DataType;
57
60
  DataType["FFDComponent"] = "FFDComponent";
58
61
  DataType["FrameComponent"] = "FrameComponent";
59
62
  DataType["Animator"] = "Animator";
63
+ DataType["DomContentComponent"] = "DomContentComponent";
64
+ DataType["UIControl"] = "UIControl";
65
+ // GUI Controls
66
+ DataType["Control"] = "Control";
67
+ DataType["Container"] = "Container";
68
+ DataType["HBoxContainer"] = "HBoxContainer";
69
+ DataType["VBoxContainer"] = "VBoxContainer";
70
+ DataType["GridContainer"] = "GridContainer";
71
+ DataType["PanelContainer"] = "PanelContainer";
72
+ DataType["MarginContainer"] = "MarginContainer";
73
+ DataType["CenterContainer"] = "CenterContainer";
74
+ DataType["AspectRatioContainer"] = "AspectRatioContainer";
75
+ DataType["ScrollContainer"] = "ScrollContainer";
76
+ DataType["HScrollBar"] = "HScrollBar";
77
+ DataType["VScrollBar"] = "VScrollBar";
78
+ DataType["HSeparator"] = "HSeparator";
79
+ DataType["VSeparator"] = "VSeparator";
80
+ DataType["Label"] = "Label";
81
+ DataType["LineEdit"] = "LineEdit";
82
+ DataType["TextEdit"] = "TextEdit";
83
+ DataType["PopupPanel"] = "PopupPanel";
84
+ DataType["PopupMenu"] = "PopupMenu";
85
+ DataType["MenuButton"] = "MenuButton";
86
+ DataType["OptionButton"] = "OptionButton";
87
+ DataType["ColorPicker"] = "ColorPicker";
88
+ DataType["ColorPickerButton"] = "ColorPickerButton";
89
+ DataType["TextureRect"] = "TextureRect";
90
+ DataType["NinePatchRect"] = "NinePatchRect";
91
+ DataType["ColorRect"] = "ColorRect";
92
+ DataType["Panel"] = "Panel";
93
+ DataType["ProgressBar"] = "ProgressBar";
94
+ DataType["Button"] = "Button";
95
+ DataType["Checkbox"] = "Checkbox";
96
+ DataType["CheckButton"] = "CheckButton";
97
+ DataType["HSlider"] = "HSlider";
98
+ DataType["VSlider"] = "VSlider";
60
99
  // Non-EffectObject
61
100
  DataType["TimelineClip"] = "TimelineClip";
62
101
  })(DataType || (DataType = {}));
package/es/index.d.ts CHANGED
@@ -29,6 +29,7 @@ export * from './binary';
29
29
  export * from './text';
30
30
  export * from './components';
31
31
  export * from './buitin-object-guid';
32
+ export * from './sprite';
32
33
  export * from './shape';
33
34
  export * from './animation-graph';
34
35
  export * from './timeline';
@@ -41,4 +42,4 @@ export * from './material-data';
41
42
  export * from './geometry-data';
42
43
  export * from './shader-data';
43
44
  export * from './effects-package-data';
44
- export declare const LATEST_VERSION = JSONSceneVersion['3_7'];
45
+ export declare const LATEST_VERSION = JSONSceneVersion['3_8'];
package/es/index.js CHANGED
@@ -29,6 +29,7 @@ export * from './binary';
29
29
  export * from './text';
30
30
  export * from './components';
31
31
  export * from './buitin-object-guid';
32
+ export * from './sprite';
32
33
  export * from './shape';
33
34
  export * from './animation-graph';
34
35
  export * from './timeline';
@@ -36,26 +36,38 @@ export declare enum EndBehavior {
36
36
  */
37
37
  freeze = 4
38
38
  }
39
+ /**
40
+ * 单个蒙版引用数据,用于多蒙版场景
41
+ */
42
+ export interface MaskReferenceData {
43
+ /**
44
+ * 指向作为蒙版的组件
45
+ */
46
+ mask: DataPath;
47
+ /**
48
+ * 是否反向蒙版(true: 反向遮挡,false: 正向遮挡)
49
+ * @default false
50
+ */
51
+ inverted?: boolean;
52
+ }
39
53
  /**
40
54
  * 元素的蒙版选项
55
+ * 使用 references 数组指定蒙版引用,每个引用可独立设置 inverted 属性。
41
56
  */
42
57
  export interface MaskOptions {
43
58
  /**
44
59
  * 是否作为蒙版
45
60
  */
46
61
  isMask?: boolean;
47
- /**
48
- * 是否反转
49
- */
50
- inverted?: boolean;
51
62
  /**
52
63
  * 是否开启图片透明蒙版
53
64
  */
54
65
  alphaMaskEnabled?: boolean;
55
66
  /**
56
- * 指向作为蒙版的组件
67
+ * 蒙版引用列表
68
+ * 每个引用指定一个蒙版组件及其是否反向。
57
69
  */
58
- reference: DataPath;
70
+ references?: MaskReferenceData[];
59
71
  }
60
72
  export interface BaseItem {
61
73
  /**
@@ -31,6 +31,7 @@ export interface SpriteContent {
31
31
  /**
32
32
  * added by loader
33
33
  * @default null
34
+ * @deprecated 2.9.0 Please use Sprite
34
35
  */
35
36
  splits?: SplitParameter[];
36
37
  /**
@@ -83,4 +84,8 @@ export interface SpriteComponentData extends ComponentData, SpriteContent {
83
84
  * 自定义几何体数据
84
85
  */
85
86
  geometry?: DataPath;
87
+ /**
88
+ * 引用的 Sprite 资产(新版数据流);未设置时走旧 renderer.texture + splits 路径
89
+ */
90
+ sprite?: DataPath;
86
91
  }
@@ -91,7 +91,11 @@ export declare enum ValueType {
91
91
  /**
92
92
  * Vector3 曲线
93
93
  */
94
- VECTOR3_CURVE = 27
94
+ VECTOR3_CURVE = 27,
95
+ /**
96
+ * 对象引用阶梯曲线(不插值)
97
+ */
98
+ REFERENCE_CURVE = 28
95
99
  }
96
100
  export type vec2 = [x: number, y: number];
97
101
  export type vec3 = [x: number, y: number, z: number];
@@ -93,6 +93,10 @@ export var ValueType;
93
93
  * Vector3 曲线
94
94
  */
95
95
  ValueType[ValueType["VECTOR3_CURVE"] = 27] = "VECTOR3_CURVE";
96
+ /**
97
+ * 对象引用阶梯曲线(不插值)
98
+ */
99
+ ValueType[ValueType["REFERENCE_CURVE"] = 28] = "REFERENCE_CURVE";
96
100
  })(ValueType || (ValueType = {}));
97
101
  /**
98
102
  * 关键帧类型
package/es/scene.d.ts CHANGED
@@ -36,7 +36,8 @@ export declare enum JSONSceneVersion {
36
36
  '3_5' = "3.5",// 网格形状变化动画、矢量图形填充/描边渐变色
37
37
  '3_6' = "3.6",// 支持 KTX2 纹理、H265 视频格式、文本增强
38
38
  '3_7' = "3.7",// 文本 autoSize、元素子节点
39
- 'LATEST' = "3.7"
39
+ '3_8' = "3.8",// 支持 UI Control、Multi-mask
40
+ 'LATEST' = "3.8"
40
41
  }
41
42
  /**
42
43
  * runtime 2.0 之前的场景信息
package/es/scene.js CHANGED
@@ -22,5 +22,6 @@ export var JSONSceneVersion;
22
22
  JSONSceneVersion["3_5"] = "3.5";
23
23
  JSONSceneVersion["3_6"] = "3.6";
24
24
  JSONSceneVersion["3_7"] = "3.7";
25
- JSONSceneVersion["LATEST"] = "3.7";
25
+ JSONSceneVersion["3_8"] = "3.8";
26
+ JSONSceneVersion["LATEST"] = "3.8";
26
27
  })(JSONSceneVersion || (JSONSceneVersion = {}));
package/es/sprite.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ import type { DataPath } from './components';
2
+ import type { EffectsObjectData } from './effects-object-data';
3
+ import type { vec4 } from './number-expression';
4
+ /**
5
+ * Sprite UV 旋转方式。序列化为整数(兼容老 splits 的 flip 0/1)。
6
+ * None 不旋转、Rotate90 将 UV 顺时针旋转 90°(width/height 互换)。
7
+ */
8
+ export declare enum SpriteRotation {
9
+ /** 不旋转 */
10
+ None = 0,
11
+ /** UV 旋转 90°(对应老 splits flip=1) */
12
+ Rotate90 = 1
13
+ }
14
+ /**
15
+ * Sprite 资产:一张纹理 + 一个归一化 UV 矩形区域。
16
+ * 被 SpriteComponent 引用,替代直接引用 Texture + 散落的 splits。
17
+ */
18
+ export interface SpriteData extends EffectsObjectData {
19
+ /** 关联纹理(DataPath 引用) */
20
+ texture?: DataPath;
21
+ /** 归一化 UV 矩形 [x, y, w, h],默认整张纹理 */
22
+ rect?: vec4;
23
+ /** UV 旋转方式(0=None, 1=Rotate90) */
24
+ rotation?: SpriteRotation;
25
+ }
26
+ /**
27
+ * 对象引用曲线值(createValueGetter 入参 / 序列化形态):[curveType, keyframes[]]。
28
+ * curveType 为 ValueType.REFERENCE_CURVE。
29
+ * 序列化时 value 为 DataPath({id}),运行时由 fromData 解析为 EffectsObject 实例。
30
+ */
31
+ export type ReferenceCurveValue = [number, [time: number, value: DataPath][]];
32
+ /**
33
+ * Sprite 属性 K 帧 PlayableAsset 数据。
34
+ * curveData 为对象引用阶梯曲线,阶梯采样(不插值)。
35
+ */
36
+ export interface SpritePropertyAssetData extends EffectsObjectData {
37
+ /** [REFERENCE_CURVE, [time, DataPath][]] */
38
+ curveData: ReferenceCurveValue;
39
+ }
package/es/sprite.js ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Sprite UV 旋转方式。序列化为整数(兼容老 splits 的 flip 0/1)。
3
+ * None 不旋转、Rotate90 将 UV 顺时针旋转 90°(width/height 互换)。
4
+ */
5
+ export var SpriteRotation;
6
+ (function (SpriteRotation) {
7
+ /** 不旋转 */
8
+ SpriteRotation[SpriteRotation["None"] = 0] = "None";
9
+ /** UV 旋转 90°(对应老 splits flip=1) */
10
+ SpriteRotation[SpriteRotation["Rotate90"] = 1] = "Rotate90";
11
+ })(SpriteRotation || (SpriteRotation = {}));
package/es/type.d.ts CHANGED
@@ -444,6 +444,7 @@ export interface RendererOptions {
444
444
  transparentOcclusion?: boolean;
445
445
  /**
446
446
  * 贴图,索引到 scene 中的 images 数组
447
+ * @deprecated 2.9.0 迁移至 sprite.texture
447
448
  */
448
449
  texture?: DataPath;
449
450
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/effects-specification",
3
- "version": "2.8.1",
3
+ "version": "2.9.0",
4
4
  "description": "Galacean Effects JSON Specification",
5
5
  "module": "./es/index.js",
6
6
  "main": "./es/index.js",
@@ -15,17 +15,6 @@
15
15
  "types": "./es/index.d.ts"
16
16
  }
17
17
  },
18
- "scripts": {
19
- "prebuild": "pnpm clean",
20
- "build": "pnpm build:lib",
21
- "build:lib": "tsc -b tsconfig.build.json",
22
- "lint": "eslint src --ext .ts,.mjs",
23
- "lint:fix": "eslint src --fix --quiet --ext .ts,.mjs",
24
- "check:ts": "tsc -b tsconfig.check.json",
25
- "clean": "rimraf es/**",
26
- "prepare": "husky install",
27
- "prepublishOnly": "npm run build"
28
- },
29
18
  "browserslist": [
30
19
  "iOS 9"
31
20
  ],
@@ -48,5 +37,14 @@
48
37
  "publishConfig": {
49
38
  "access": "public",
50
39
  "registry": "https://registry.npmjs.org"
40
+ },
41
+ "scripts": {
42
+ "prebuild": "pnpm clean",
43
+ "build": "pnpm build:lib",
44
+ "build:lib": "tsc -b tsconfig.build.json",
45
+ "lint": "eslint src --ext .ts,.mjs",
46
+ "lint:fix": "eslint src --fix --quiet --ext .ts,.mjs",
47
+ "check:ts": "tsc -b tsconfig.check.json",
48
+ "clean": "rimraf es/**"
51
49
  }
52
- }
50
+ }