1/* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import {GestureType, GestureMask} from "./gesture" 17import {Circle} from "./circle"; 18import {Ellipse} from "./ellipse"; 19import {Path} from "./path"; 20import {Rect} from "./rect"; 21 22export declare const Component: ClassDecorator; 23export declare const Entry: ClassDecorator; 24export declare const Observed: ClassDecorator; 25export declare const Preview: ClassDecorator; 26export declare const State: PropertyDecorator; 27export declare const Prop: PropertyDecorator; 28export declare const Link: PropertyDecorator; 29export declare const ObjectLink: PropertyDecorator; 30export declare const Provide: PropertyDecorator & ((value: string) => PropertyDecorator); 31export declare const Consume: PropertyDecorator & ((value: string) => PropertyDecorator); 32export declare const StorageProp: (value: string) => PropertyDecorator; 33export declare const StorageLink: (value: string) => PropertyDecorator; 34export declare const Watch: (value: string) => PropertyDecorator; 35export declare const Builder: MethodDecorator; 36export declare const CustomDialog: ClassDecorator; 37declare interface NormalResource { 38 readonly id: number; 39 readonly type: number; 40 readonly params?: any[]; 41} 42 43declare interface RawfileResource { 44 readonly fileName: string; 45} 46 47export declare type Resource = RawfileResource | NormalResource; 48 49export declare interface Configuration { 50 readonly colorMode: string; 51 readonly fontScale: number; 52} 53 54declare const isSystemplugin: Function; 55 56// global function 57export declare function $s(value: string, params?: object | Array<any> | number): string; 58 59export declare function $m(value: string): string; 60 61export declare function $r(value: string, ...params: any[]): Resource; 62 63export declare function $rawfile(value: string): Resource; 64 65export declare function animateTo(value: { 66 duration?: number, tempo?: number, curve?: Curve | string, 67 delay?: number, iterations?: number, playMode?: PlayMode, onFinish?: () => void 68}, event: () => void): void; 69 70export declare function vp2px(value: number): number; 71 72export declare function px2vp(value: number): number; 73 74export declare function fp2px(value: number): number; 75 76export declare function px2fp(value: number): number; 77 78export declare function lpx2px(value: number): number; 79 80export declare function px2lpx(value: number): number; 81 82export declare function setAppBgColor(params: string): void; 83 84// common enum 85export declare enum Color { 86 White, 87 Black, 88 Blue, 89 Brown, 90 Gray, 91 Green, 92 Grey, 93 Orange, 94 Pink, 95 Red, 96 Yellow 97} 98 99export declare enum ImageFit { 100 Contain, 101 Cover, 102 Auto, 103 Fill, 104 ScaleDown, 105 None 106} 107 108export declare enum BorderStyle { 109 Dotted, 110 Dashed, 111 Solid 112} 113 114export declare enum LineJoinStyle { 115 Miter, 116 Round, 117 Bevel 118} 119 120export declare enum TouchType { 121 Down, 122 Up, 123 Move, 124 Cancel 125} 126 127export declare enum AnimationStatus { 128 Initial, 129 Running, 130 Paused, 131 Stopped 132} 133 134export declare enum Curve { 135 Linear, 136 Ease, 137 EaseIn, 138 EaseOut, 139 EaseInOut, 140 FastOutSlowIn, 141 LinearOutSlowIn, 142 FastOutLinearIn, 143 ExtremeDeceleration, 144 Sharp, 145 Rhythm, 146 Smooth, 147 Friction 148} 149 150export declare enum FillMode { 151 None, 152 Forwards, 153 Backwards, 154 Both 155} 156 157export declare enum PlayMode { 158 Normal, 159 Reverse, 160 Alternate, 161 AlternateReverse 162} 163 164export declare enum BlurStyle { 165 SmallLight, 166 MediumLight, 167 LargeLight, 168 XlargeLight, 169 SmallDark, 170 MediumDark, 171 LargeDark, 172 XlargeDark 173} 174 175export declare enum KeyType { 176 Down, 177 Up, 178 LongPress 179} 180 181export declare enum KeySource { 182 Unknown, 183 Keyboard, 184 Mouse, 185 Dpad, 186 Gamepad, 187 Joystick, 188 TouchScreen, 189 TouchPad, 190 Stylus, 191 Trackball, 192 Knob, 193 Any 194} 195 196export declare enum Edge { 197 Top, 198 Center, 199 Bottom, 200 Baseline, 201 Start, 202 Middle, 203 End 204} 205 206export declare enum Week { 207 Mon, 208 Tue, 209 Wed, 210 Thur, 211 Fri, 212 Sat, 213 Sun, 214} 215 216export declare enum Direction { 217 Ltr, 218 Rtl, 219 Auto 220} 221 222export declare enum BarState { 223 Off, 224 Auto, 225 On 226} 227 228export declare enum EdgeEffect { 229 Spring, 230 Fade, 231 None 232} 233 234export interface ClickEvent { 235 screenX: number; 236 screenY: number; 237 x: number; 238 y: number; 239 timestamp: number; 240} 241 242export interface TouchObject { 243 type: TouchType; 244 id: number; 245 screenX: number; 246 screenY: number; 247 x: number; 248 y: number; 249} 250 251export interface TouchEvent { 252 type: TouchType; 253 touches: TouchObject[]; 254 changedTouches: TouchObject[]; 255 timestamp: number; 256 stopPropagation?: () => void; 257} 258 259interface PasteData { 260 getPlainText(): string; 261 setPlainText(value: string); 262} 263 264export declare class PixelMap { 265 release(): void; 266} 267 268interface DragEvent { 269 getPasteData(): PasteData; 270 getX(): number; 271 getY(): number; 272 getDescription(): string; 273 setDescription(value: string); 274 setPixmap(value: PixelMap); 275} 276 277export interface KeyEvent { 278 type: KeyType; 279 keyCode: number; 280 keyText: string; 281 keySource: KeySource; 282 deviceId: number; 283 metaKey: number; 284 timestamp: number; 285 stopPropagation?: () => void; 286} 287 288export declare enum Alignment { 289 TopStart, 290 Top, 291 TopEnd, 292 Start, 293 Center, 294 End, 295 BottomStart, 296 Bottom, 297 BottomEnd 298} 299 300export declare enum TransitionType { 301 All, 302 Insert, 303 Delete 304} 305 306export declare enum RelateType { 307 FILL, 308 FIT 309} 310 311export declare enum Visibility { 312 Visible, 313 Hidden, 314 None 315} 316 317export declare enum LineCapStyle { 318 Butt, 319 Round, 320 Square 321} 322 323export declare enum Axis { 324 Vertical, 325 Horizontal 326} 327 328export declare enum HorizontalAlign { 329 Start, 330 Center, 331 End 332} 333 334export declare enum FlexAlign { 335 Start, 336 Center, 337 End, 338 SpaceBetween, 339 SpaceAround, 340 SpaceEvenly 341} 342 343export declare enum ItemAlign { 344 Auto, 345 Start, 346 Center, 347 End, 348 Baseline, 349 Stretch 350} 351 352export declare enum FlexDirection { 353 Row, 354 Column, 355 RowReverse, 356 ColumnReverse 357} 358 359export declare enum FlexWrap { 360 NoWrap, 361 Wrap, 362 WrapReverse 363} 364 365export declare enum VerticalAlign { 366 Top, 367 Center, 368 Bottom 369} 370 371export declare class VerticalAlignDeclaration { 372 constructor(value?: VerticalAlign) 373} 374 375export declare class HorizontalAlignDeclaration { 376 constructor(value?: HorizontalAlign) 377} 378 379export declare enum ImageRepeat { 380 NoRepeat, 381 X, 382 Y, 383 XY 384} 385 386export declare enum ImageSize { 387 Auto, 388 Cover, 389 Contain 390} 391 392export declare enum GradientDirection { 393 Left, 394 Top, 395 Right, 396 Bottom, 397 LeftTop, 398 LeftBottom, 399 RightTop, 400 RightBottom, 401 None 402} 403 404export declare enum SharedTransitionEffectType { 405 Static, 406 Exchange 407} 408 409export declare class CommonMethod<T> { 410 constructor(); 411 412 width(value: number | string | Resource): T; 413 414 height(value: number | string | Resource): T; 415 416 size(value: { width?: number | string | Resource, height?: number | string | Resource}): T; 417 418 constraintSize(value: { minWidth?: number | string | Resource, maxWidth?: number | string | Resource, minHeight?: number | string | Resource, maxHeight?: number | string | Resource}): T; 419 420 layoutPriority(value: number | string): T; 421 422 layoutWeight(value: number | string): T; 423 424 padding(value: { top?: number | string | Resource, right?: number | string | Resource, bottom?: number | string | Resource, left?: number | string | Resource} | number | string | Resource): T; 425 426 margin(value: { top?: number | string | Resource, right?: number | string | Resource, bottom?: number | string | Resource, left?: number | string | Resource} | number | string | Resource): T; 427 428 backgroundColor(value: Color | number | string | Resource): T; 429 430 backgroundImage(src: string, repeat?: ImageRepeat): T; 431 432 backgroundImageSize(value: { width?: number | string, height?: number | string } | ImageSize): T; 433 434 backgroundImagePosition(value: { x?: number | string, y?: number | string } | Alignment): T; 435 436 opacity(value: number | Resource): T 437 438 border(value: { width?: number | string | Resource, color?: Color | number | string | Resource, radius?: number | string | Resource, style?: BorderStyle }): T; 439 440 borderStyle(value: BorderStyle): T; 441 442 borderWidth(value: number | string | Resource): T; 443 444 borderColor(value: Color | number | string | Resource): T; 445 446 borderRadius(value: number | string | Resource): T; 447 448 navigationTitle(value: string): T; 449 450 navigationSubTitle(value: string): T; 451 452 hideNavigationBar(value: boolean): T; 453 454 hideNavigationBackButton(value: boolean): T; 455 456 toolBar(value: object): T; 457 458 hideToolBar(value: boolean): T; 459 460 onClick(event: (event?: ClickEvent) => void): T; 461 462 onTouch(event: (event?: TouchEvent) => void): T; 463 464 onHover(event: (isHover?: boolean) => void): T; 465 466 onKeyEvent(event: (event?: KeyEvent) => void): T; 467 468 onPan(event: (event?: any) => void): T; 469 470 animation(value: { 471 duration?: number, tempo?: number, curve?: Curve | string, delay?: number, iterations?: number, 472 playMode?: PlayMode, onFinish?: () => void 473 }): T; 474 475 transition(value: { 476 type?: TransitionType, opacity?: number, 477 translate?: { x?: number | string, y?: number | string, z?: number | string }, 478 scale?: { x?: number, y?: number, z?: number, centerX?: number | string, centerY?: number | string }, 479 rotate?: { x?: number, y?: number, z?: number, centerX?: number | string, centerY?: number | string, angle: number | string } 480 }): T; 481 482 gesture(gesture: GestureType, mask?: GestureMask): T; 483 484 priorityGesture(gesture: GestureType, mask?: GestureMask): T; 485 486 parallelGesture(gesture: GestureType, mask?: GestureMask): T; 487 488 blur(value: number): T; 489 490 brightness(value: number): T; 491 492 contrast(value: number): T; 493 494 grayscale(value: number): T; 495 496 colorBlend(value: Color | string | Resource): T; 497 498 saturate(value: number): T; 499 500 sepia(value: number): T; 501 502 invert(value: number): T; 503 504 hueRotate(value:{deg: string | number}): T; 505 506 backdropBlur(value: number): T; 507 508 windowBlur(value: { percent: number, style?: BlurStyle }): T; 509 510 translate(value: { x?: number | string, y?: number | string, z?: number | string }): T; 511 512 scale(value: { x?: number, y?: number, z?: number, centerX?: number | string, centerY?: number | string }): T; 513 514 gridSpan(value: number): T 515 516 gridOffset(value: number): T 517 518 rotate(value: { x?: number, y?: number, z?: number, centerX?: number | string, centerY?: number | string, angle: number | string }): T; 519 520 transform(value: object): T; 521 522 onAppear(event: () => void): T; 523 524 onDisAppear(event: () => void): T; 525 526 visibility(value: Visibility): T; 527 528 flexGrow(value: number): T; 529 530 flexShrink(value: number): T; 531 532 flexBasis(value: number | string): T; 533 534 alignSelf(value: ItemAlign): T; 535 536 displayPriority(value: number): T; 537 538 useAlign(align: HorizontalAlignDeclaration | VerticalAlignDeclaration, value: { side: Edge, offset?: number | string }): T; 539 540 zIndex(value: number): T; 541 542 sharedTransition(id: string, options?: { 543 duration?: number, 544 curve?: Curve | string, 545 delay?: number, 546 motionPath?: { 547 path: string, 548 from?: number, 549 to?: number, 550 rotatable?: boolean 551 }, 552 zIndex?: number, 553 type?: SharedTransitionEffectType, 554 }): T; 555 556 direction(value: Direction): T; 557 558 align(value: Alignment): T; 559 560 position(value: { x?: number | string | Resource, y?: number | string | Resource }): T; 561 562 markAnchor(value: { x?: number | string | Resource, y?: number | string | Resource }): T; 563 564 offset(value: { x?: number | string | Resource, y?: number | string | Resource }): T; 565 566 enabled(value: boolean): T; 567 568 useSizeType(value: { 569 xs?: number | { span: number, offset: number }, 570 sm?: number | { span: number, offset: number }, 571 md?: number | { span: number, offset: number }, 572 lg?: number | { span: number, offset: number } 573 }): T; 574 575 aspectRatio(value: number): T; 576 577 onDrag(event: (event?: DragEvent) => void): T; 578 579 onDragEnter(event: (event?: DragEvent) => void): T; 580 581 onDragMove(event: (event?: DragEvent) => void): T; 582 583 onDragLeave(event: (event?: DragEvent) => void): T; 584 585 onDrop(event: (event?: DragEvent) => void): T; 586 587 overlay(value: string, options?: { align?: Alignment, offset?: { x?: number, y?: number } }): T; 588 589 linearGradient(value: { angle?: number | string, direction?: GradientDirection, colors: Array<any>, repeating?: boolean }): T; 590 591 sweepGradient(value: { center: Array<any>, start?: number | string, end?: number | string, rotation?: number | string, colors: Array<any>, repeating?: boolean }): T; 592 593 radialGradient(value: { center: Array<any>, radius: number | string, colors: Array<any>, repeating?: boolean }): T; 594 595 motionPath(value: { path: string, from?: number, to?: number, rotatable?: boolean }): T; 596 597 shadow(value: { radius: number | Resource, color?: Color | string | Resource, offsetX?: number | Resource, offsetY?: number | Resource }): T; 598 599 clip(value: boolean | Circle | Ellipse | Path | Rect): T; 600 601 mask(value: Circle | Ellipse | Path | Rect): T; 602 603 accessibilityGroup(value: boolean): T; 604 605 accessibilityText(value: string): T; 606 607 accessibilityDescription(value: string): T; 608 609 accessibilityImportance(value: string): T; 610 611 onAccessibility(callback: (event?: { eventType: number }) => void): T; 612 613 geometryTransition(id: string): T; 614 615 bindPopup(show: boolean, popup: { 616 message: string, 617 placementOnTop: boolean, 618 primaryButton: { 619 value: string; 620 action: () => void; 621 }; 622 secondaryButton: { 623 value: string; 624 action: () => void; 625 }; 626 onStateChange?: (callback: (event?: { isVisible: boolean }) => void) => void; 627 }): T; 628} 629 630export declare class CommonShapeMethod<T> extends CommonMethod<T> { 631 constructor(); 632 633 stroke(value: Color | number | string | Resource): T; 634 635 fill(value: Color | number | string | Resource): T; 636 637 strokeDashOffset(value: number | string): T; 638 639 strokeLineCap(value: LineCapStyle): T; 640 641 strokeLineJoin(value: LineJoinStyle): T; 642 643 strokeMiterLimit(value: number | string): T; 644 645 strokeOpacity(value: number | string | Resource): T; 646 647 fillOpacity(value: number | string | Resource): T; 648 649 strokeWidth(value: number | string | Resource): T; 650 651 antiAlias(value: boolean): T; 652 653 strokeDashArray(value: Array<any>): T 654} 655 656export declare class CustomComponent<T> { 657 build(): void; 658 659 private aboutToAppear?(): void; 660 661 private aboutToDisappear?(): void; 662} 663