Blame view

天文台pc/tianwentai-ui/node_modules/@emotion/react/src/jsx.ts 1.55 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  import * as React from 'react'
  import Emotion, { createEmotionProps } from './emotion-element'
  import { EmotionJSX } from './jsx-namespace'
  import { hasOwn } from './utils'
  
  export const jsx: typeof React.createElement = function (
    type: any,
    props: any
  ): any {
    // eslint-disable-next-line prefer-rest-params
    let args: any = arguments
  
    if (props == null || !hasOwn.call(props, 'css')) {
      return React.createElement.apply(undefined, args)
    }
  
    let argsLength = args.length
    let createElementArgArray: any = new Array(argsLength)
    createElementArgArray[0] = Emotion
    createElementArgArray[1] = createEmotionProps(type, props)
  
    for (let i = 2; i < argsLength; i++) {
      createElementArgArray[i] = args[i]
    }
  
    return React.createElement.apply(null, createElementArgArray)
  }
  export namespace jsx {
    export namespace JSX {
      export type ElementType = EmotionJSX.ElementType
      export interface Element extends EmotionJSX.Element {}
      export interface ElementClass extends EmotionJSX.ElementClass {}
      export interface ElementAttributesProperty
        extends EmotionJSX.ElementAttributesProperty {}
      export interface ElementChildrenAttribute
        extends EmotionJSX.ElementChildrenAttribute {}
      export type LibraryManagedAttributes<C, P> =
        EmotionJSX.LibraryManagedAttributes<C, P>
      export interface IntrinsicAttributes
        extends EmotionJSX.IntrinsicAttributes {}
      export interface IntrinsicClassAttributes<T>
        extends EmotionJSX.IntrinsicClassAttributes<T> {}
      export type IntrinsicElements = EmotionJSX.IntrinsicElements
    }
  }