type.d.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { ImageProps } from '../image/index';
  2. export interface TdUploadProps {
  3. addBtn?: {
  4. type: BooleanConstructor;
  5. value?: boolean;
  6. };
  7. addContent?: {
  8. type: StringConstructor;
  9. value?: string;
  10. };
  11. allowUploadDuplicateFile?: {
  12. type: BooleanConstructor;
  13. value?: boolean;
  14. };
  15. config?: {
  16. type: ObjectConstructor;
  17. value?: UploadMpConfig;
  18. };
  19. disabled?: {
  20. type: BooleanConstructor;
  21. value?: boolean;
  22. };
  23. draggable?: {
  24. type: null;
  25. value?: boolean | {
  26. vibrate?: boolean;
  27. collisionVibrate?: boolean;
  28. };
  29. };
  30. files?: {
  31. type: ArrayConstructor;
  32. value?: Array<UploadFile>;
  33. };
  34. defaultFiles?: {
  35. type: ArrayConstructor;
  36. value?: Array<UploadFile>;
  37. };
  38. gridConfig?: {
  39. type: ObjectConstructor;
  40. value?: {
  41. column?: number;
  42. width?: number;
  43. height?: number;
  44. };
  45. };
  46. gutter?: {
  47. type: NumberConstructor;
  48. value?: number;
  49. };
  50. imageProps?: {
  51. type: ObjectConstructor;
  52. value?: ImageProps;
  53. };
  54. max?: {
  55. type: NumberConstructor;
  56. value?: number;
  57. };
  58. mediaType?: {
  59. type: ArrayConstructor;
  60. value?: Array<MediaType>;
  61. };
  62. preview?: {
  63. type: BooleanConstructor;
  64. value?: boolean;
  65. };
  66. removeBtn?: {
  67. type: BooleanConstructor;
  68. value?: boolean;
  69. };
  70. requestMethod?: {
  71. type: undefined;
  72. value?: null;
  73. };
  74. sizeLimit?: {
  75. type: null;
  76. value?: number | SizeLimitObj;
  77. };
  78. source?: {
  79. type: StringConstructor;
  80. value?: 'media' | 'messageFile';
  81. };
  82. transition?: {
  83. type: ObjectConstructor;
  84. value?: Transition;
  85. };
  86. }
  87. export declare type UploadMpConfig = ImageConfig | VideoConfig;
  88. export interface ImageConfig {
  89. count?: number;
  90. sizeType?: Array<SizeTypeValues>;
  91. sourceType?: Array<SourceTypeValues>;
  92. }
  93. export declare type SizeTypeValues = 'original' | 'compressed';
  94. export declare type SourceTypeValues = 'album' | 'camera';
  95. export interface VideoConfig {
  96. sourceType?: Array<SourceTypeValues>;
  97. compressed?: boolean;
  98. maxDuration?: number;
  99. camera?: 'back' | 'front';
  100. }
  101. export interface UploadFile {
  102. url: string;
  103. name?: string;
  104. size?: number;
  105. type?: 'image' | 'video';
  106. percent?: number;
  107. status: 'loading' | 'reload' | 'failed' | 'done';
  108. }
  109. export declare type MediaType = 'image' | 'video';
  110. export interface SizeLimitObj {
  111. size: number;
  112. unit: SizeUnit;
  113. message?: string;
  114. }
  115. export declare type SizeUnitArray = ['B', 'KB', 'MB', 'GB'];
  116. export declare type SizeUnit = SizeUnitArray[number];
  117. export interface Transition {
  118. backTransition?: boolean;
  119. duration?: number;
  120. timingFunction?: string;
  121. }