• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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