@indfnd/utils 0.0.38 → 0.0.40

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indfnd/utils",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
4
4
  "author": "huxuetong",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
package/src/api/item.ts CHANGED
@@ -6,15 +6,9 @@ const CONTEXT = config.ismAmServerContext
6
6
  export function listItemTreeApi(params) {
7
7
  return axios.get(`${CONTEXT}/tree/item/listItemTree`, { params })
8
8
  }
9
-
10
- export function getPriceCode(params) {
11
- return axios.get(`${CONTEXT}/tree/item/listComTree`, { params })
12
- }
13
-
14
- export function getPriceSeg(params) {
15
- return axios.get(`${CONTEXT}/tree/item/listComTree`, { params })
9
+ export function getPriceInfo() {
10
+ return axios.get(`${CONTEXT}/basic/getPriceInfo`, {});
16
11
  }
17
-
18
12
  export function getItem(params) {
19
- return axios.get(`${CONTEXT}/tree/item/listComTree`, { params })
13
+ return axios.get(`${CONTEXT}/basic/getItem`, { params });
20
14
  }
@@ -1,11 +1,14 @@
1
- import { axios } from '@/utils'
1
+ import { axios, Base64ForLogin } from '@/utils'
2
2
  import { config } from '@/config'
3
3
 
4
4
  const CONTEXT = config.authServerContext
5
5
 
6
6
  export function loginApi({ userName, password, validCodeId, validCodeInput }) {
7
- const data = { username: userName, password, validCodeId, validCodeInput }
8
- return axios.formPost(CONTEXT + '/sso/login', data)
7
+ let upw = encodeURIComponent(password)
8
+ upw = Base64ForLogin.encode(upw)
9
+
10
+ const data = { usn: userName, upw, validCodeId, validCodeInput }
11
+ return axios.formPost(CONTEXT + '/sso/auth/login', data)
9
12
  }
10
13
 
11
14
  export function getUserInfoApi() {
@@ -0,0 +1,124 @@
1
+ // copy from @lambo-design/shared
2
+ let Base64ForLogin = {
3
+ Base64Chars: 'abcdefghijklmnopqrstuv' + 'wxyzABCDEFGHIJKLMNOP' + 'QRSTUVWXYZ0123456789@*-',
4
+ /**
5
+ * Encode a string to a Base64 string follow Bse64 regular.
6
+ * @param s, a normal string
7
+ * @return a Base64 string
8
+ */
9
+ encode: function (s) {
10
+ if (!s || s.length == 0) return s
11
+
12
+ var d = ''
13
+ var b = this.ucs2_utf8(s)
14
+ var b0, b1, b2, b3
15
+ var len = b.length
16
+ var i = 0
17
+ while (i < len) {
18
+ var tmp = b[i++]
19
+ b0 = (tmp & 0xfc) >> 2
20
+ b1 = (tmp & 0x03) << 4
21
+ if (i < len) {
22
+ tmp = b[i++]
23
+ b1 |= (tmp & 0xf0) >> 4
24
+ b2 = (tmp & 0x0f) << 2
25
+ if (i < len) {
26
+ tmp = b[i++]
27
+ b2 |= (tmp & 0xc0) >> 6
28
+ b3 = tmp & 0x3f
29
+ } else {
30
+ b3 = 64 // 1 byte "-" is supplement
31
+ }
32
+ } else {
33
+ b2 = b3 = 64 // 2 bytes "-" are supplement
34
+ }
35
+
36
+ d += this.Base64Chars.charAt(b0)
37
+ d += this.Base64Chars.charAt(b1)
38
+ d += this.Base64Chars.charAt(b2)
39
+ d += this.Base64Chars.charAt(b3)
40
+ }
41
+
42
+ return d
43
+ },
44
+
45
+ /**
46
+ * Encodes a ucs2 string to a utf8 integer array.
47
+ * @param s, a string
48
+ * @return an integer array
49
+ */
50
+ ucs2_utf8: function (s) {
51
+ if (!s) return null
52
+ var d = new Array()
53
+ if (s == '') return d
54
+
55
+ var c = 0,
56
+ i = 0,
57
+ j = 0
58
+ var len = s.length
59
+ while (i < len) {
60
+ c = s.charCodeAt(i++)
61
+ if (c <= 0x7f) {
62
+ // 1 byte
63
+
64
+ d[j++] = c
65
+ } else if (c >= 0x80 && c <= 0x7ff) {
66
+ // 2 bytes
67
+
68
+ d[j++] = ((c >> 6) & 0x1f) | 0xc0
69
+ d[j++] = (c & 0x3f) | 0x80
70
+ } else {
71
+ // 3 bytes
72
+
73
+ d[j++] = (c >> 12) | 0xe0
74
+ d[j++] = ((c >> 6) & 0x3f) | 0x80
75
+ d[j++] = (c & 0x3f) | 0x80
76
+ }
77
+ }
78
+
79
+ return d
80
+ },
81
+ /**
82
+ * Encodes a utf8 integer array to a ucs2 string.
83
+ * @param s, an integer array
84
+ * @return a string
85
+ */
86
+ utf8_ucs2: function (s) {
87
+ if (!s) return null
88
+ var len = s.length
89
+ if (len == 0) return ''
90
+
91
+ var d = ''
92
+ var c = 0,
93
+ i = 0,
94
+ tmp = 0
95
+ while (i < len) {
96
+ c = s[i++]
97
+ if ((c & 0xe0) == 0xe0) {
98
+ // 3 bytes
99
+
100
+ tmp = (c & 0x0f) << 12
101
+ c = s[i++]
102
+ tmp |= (c & 0x3f) << 6
103
+ c = s[i++]
104
+ tmp |= c & 0x3f
105
+ } else if ((c & 0xc0) == 0xc0) {
106
+ // 2 bytes
107
+
108
+ tmp = (c & 0x1f) << 6
109
+ c = s[i++]
110
+ tmp |= c & 0x3f
111
+ } else {
112
+ // 1 byte
113
+
114
+ tmp = c
115
+ }
116
+
117
+ d += String.fromCharCode(tmp)
118
+ }
119
+
120
+ return d
121
+ },
122
+ }
123
+
124
+ export { Base64ForLogin }
package/src/utils/blob.ts CHANGED
@@ -25,3 +25,19 @@ export function base64ToBlob(base64Data: string, contentType: string): Blob {
25
25
  }
26
26
  return new Blob(byteArrays, { type: contentType })
27
27
  }
28
+
29
+ export function blobToBase64(blob: Blob, hasPrefix = true) {
30
+ return new Promise((resolve) => {
31
+ const reader = new FileReader()
32
+ reader.onload = function () {
33
+ const base64Data = (reader?.result || '') as string
34
+ if (hasPrefix) {
35
+ resolve(base64Data)
36
+ return
37
+ }
38
+ const base64WithoutPrefix = base64Data.split(',')[1]
39
+ resolve(base64WithoutPrefix)
40
+ }
41
+ reader.readAsDataURL(blob)
42
+ })
43
+ }
@@ -2,6 +2,7 @@ export * from './cache'
2
2
  export * from './request'
3
3
  export * from './sm3'
4
4
 
5
+ export * from './base64'
5
6
  export * from './blob'
6
7
  export * from './date'
7
8
  export * from './enum'
@@ -1,7 +1,13 @@
1
1
  const contentTypeKey = 'Content-Type'
2
2
 
3
3
  export function getContentType(config: any) {
4
- return config?.[contentTypeKey] || config?.['content-type']
4
+ let type = config?.[contentTypeKey] || config?.['content-type'] || ''
5
+ const suffixIdx = type.indexOf(';')
6
+ if (suffixIdx !== -1) {
7
+ type = type.substring(0, suffixIdx)
8
+ }
9
+
10
+ return type
5
11
  }
6
12
 
7
13
  export function setContentType(headers: any, type: string) {
@@ -13,4 +19,5 @@ export const CONTENT_TYPE = {
13
19
  multiForm: 'multipart/form-data',
14
20
  body: 'application/json',
15
21
  os: 'application/octet-stream',
22
+ json: 'application/json',
16
23
  }
@@ -68,7 +68,7 @@ export function responseInterceptors(response) {
68
68
 
69
69
  // 下载文件返回格式不是json
70
70
  const contentType = getContentType(response.headers)
71
- if (contentType === CONTENT_TYPE.os) {
71
+ if (contentType !== CONTENT_TYPE.json) {
72
72
  return data
73
73
  }
74
74
 
@@ -2,11 +2,11 @@
2
2
  * @Author: huxuetong
3
3
  * @Date: 2023-10-27 15:05:25
4
4
  * @Last Modified by: huxuetong
5
- * @Last Modified time: 2024-03-02 11:27:58
5
+ * @Last Modified time: 2024-03-05 09:02:45
6
6
  */
7
7
 
8
8
  import _ from 'lodash'
9
- import { isNil } from './is-type'
9
+ import { isFunction, isNil } from './is-type'
10
10
 
11
11
  const GROUP_SEP = '__'
12
12
  const VALUE_SEP = '--'
@@ -29,6 +29,9 @@ interface ColumnGroup {
29
29
  // 是否限制下层表头的数据要基于本层,如省份下的地市只有该省的
30
30
  isLimitChildren?: boolean
31
31
 
32
+ // 表头的鼠标悬浮提示,为true时展示表头文字,支持使用函数自定义提示内容
33
+ headerTooltip?: boolean | string | ((data: any, parents: Array<any>) => string)
34
+
32
35
  // 每层分组表头下继续分组
33
36
  children?: ColumnGroup[]
34
37
  [propName: string]: any
@@ -39,8 +42,6 @@ interface row2columnOption {
39
42
  keyPropName?: string
40
43
  // 组织后表格列定义title对应属性名称
41
44
  titlePropName?: string
42
- // 组织列定义 key 的前缀
43
- keyPrefix?: string
44
45
  }
45
46
 
46
47
  interface Column {
@@ -55,11 +56,43 @@ interface row2columnResult {
55
56
  data: Array<any>
56
57
  }
57
58
 
59
+ // 组织表头树形时的一些配置,会递归更改的
60
+ interface renderColumnTreeOption extends row2columnOption {
61
+ // 组织列定义 key 的前缀
62
+ keyPrefix?: string
63
+ // 上层表头的数据们
64
+ parents?: Array<any>
65
+ }
66
+
67
+ function renderHeaderTooltip({
68
+ tooltip,
69
+ item,
70
+ parents,
71
+ title,
72
+ }: {
73
+ tooltip: boolean | string | ((data: any, parents: Array<any>) => string)
74
+ item: any
75
+ parents: Array<any>
76
+ title: string
77
+ }): string | null {
78
+ let text = null
79
+ if (tooltip) {
80
+ if (isFunction(tooltip)) {
81
+ text = tooltip(item, parents)
82
+ } else if (tooltip === true) {
83
+ text = title
84
+ } else {
85
+ text = tooltip
86
+ }
87
+ }
88
+ return text
89
+ }
90
+
58
91
  // 根据各层分组定义组织出表头
59
92
  function renderColumnTree(
60
93
  data: Array<any>,
61
94
  columnGroup: ColumnGroup,
62
- option: row2columnOption = {},
95
+ option: renderColumnTreeOption = {},
63
96
  ): Column | Column[] {
64
97
  const {
65
98
  key,
@@ -71,10 +104,11 @@ function renderColumnTree(
71
104
  sortOrder = 'asc',
72
105
  keyLastSuffix,
73
106
  isLimitChildren,
107
+ headerTooltip,
74
108
  children,
75
109
  ...args
76
110
  } = columnGroup
77
- const { keyPropName = 'key', titlePropName = 'title', keyPrefix = '' } = option
111
+ const { keyPropName = 'key', titlePropName = 'title', keyPrefix = '', parents = [] } = option
78
112
 
79
113
  // 动态列
80
114
  if (keyProp) {
@@ -96,12 +130,22 @@ function renderColumnTree(
96
130
  let nextData = isLimitChildren
97
131
  ? data.filter((temp) => temp[keyProp] === item[keyProp])
98
132
  : data
99
- return renderColumnTree(nextData, child, { ...option, keyPrefix: prefix })
133
+ return renderColumnTree(nextData, child, {
134
+ ...option,
135
+ keyPrefix: prefix,
136
+ parents: [...parents, item],
137
+ })
100
138
  })
101
139
 
102
140
  return {
103
141
  ...args,
104
142
  [titlePropName]: columnTitle,
143
+ headerTooltip: renderHeaderTooltip({
144
+ tooltip: headerTooltip,
145
+ item,
146
+ parents,
147
+ title: columnTitle,
148
+ }),
105
149
  children: _.flatten(columnChildren), // 多层动态列下,上面的层级拿到的是个二维数组,flatten一下
106
150
  }
107
151
  }
@@ -116,6 +160,13 @@ function renderColumnTree(
116
160
  })
117
161
  }
118
162
 
163
+ const headerTooltipText = renderHeaderTooltip({
164
+ tooltip: headerTooltip,
165
+ item: {},
166
+ parents,
167
+ title,
168
+ })
169
+
119
170
  // 非动态列 不是最后一层
120
171
  if (children && children.length) {
121
172
  // 非动态列的下一层一般都是在一行数据上的,所以拼接key时不加__做不同层级的分割,而是和下一层一起作为属性名
@@ -124,9 +175,19 @@ function renderColumnTree(
124
175
  return renderColumnTree(data, child, { ...option, keyPrefix: prefix })
125
176
  })
126
177
 
127
- return { ...args, [titlePropName]: title, children: _.flatten(columnChildren) }
178
+ return {
179
+ ...args,
180
+ [titlePropName]: title,
181
+ headerTooltip: headerTooltipText,
182
+ children: _.flatten(columnChildren),
183
+ }
184
+ }
185
+ return {
186
+ ...args,
187
+ [keyPropName]: `${keyPrefix}${key}`,
188
+ [titlePropName]: title,
189
+ headerTooltip: headerTooltipText,
128
190
  }
129
- return { ...args, [keyPropName]: `${keyPrefix}${key}`, [titlePropName]: title }
130
191
  }
131
192
 
132
193
  // 获取最后一层的表头
@@ -1,5 +1,4 @@
1
1
  export declare function listItemTreeApi(params: any): Promise<import('axios').AxiosResponse<any>>
2
- export declare function getPriceCode(params: any): Promise<import('axios').AxiosResponse<any>>
3
- export declare function getPriceSeg(params: any): Promise<import('axios').AxiosResponse<any>>
2
+ export declare function getPriceInfo(): Promise<import('axios').AxiosResponse<any>>
4
3
  export declare function getItem(params: any): Promise<import('axios').AxiosResponse<any>>
5
4
  //# sourceMappingURL=item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/api/item.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,CAAC,MAAM,KAAA,+CAErC;AAED,wBAAgB,YAAY,CAAC,MAAM,KAAA,+CAElC;AAED,wBAAgB,WAAW,CAAC,MAAM,KAAA,+CAEjC;AAED,wBAAgB,OAAO,CAAC,MAAM,KAAA,+CAE7B"}
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/api/item.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,CAAC,MAAM,KAAA,+CAErC;AACD,wBAAgB,YAAY,gDAE3B;AACD,wBAAgB,OAAO,CAAC,MAAM,KAAA,+CAE7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/api/platform/user.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;;;;;CAAA,+CAG3E;AAED,wBAAgB,cAAc,gDAE7B;AAED,wBAAgB,kBAAkB,gDAEjC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,KAAA,+CAErC;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,UAEhD;AAED,wBAAgB,SAAS,gDAExB"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/api/platform/user.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;;;;;CAAA,+CAM3E;AAED,wBAAgB,cAAc,gDAE7B;AAED,wBAAgB,kBAAkB,gDAEjC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,KAAA,+CAErC;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,UAEhD;AAED,wBAAgB,SAAS,gDAExB"}
@@ -0,0 +1,23 @@
1
+ declare let Base64ForLogin: {
2
+ Base64Chars: string
3
+ /**
4
+ * Encode a string to a Base64 string follow Bse64 regular.
5
+ * @param s, a normal string
6
+ * @return a Base64 string
7
+ */
8
+ encode: (s: any) => any
9
+ /**
10
+ * Encodes a ucs2 string to a utf8 integer array.
11
+ * @param s, a string
12
+ * @return an integer array
13
+ */
14
+ ucs2_utf8: (s: any) => any[]
15
+ /**
16
+ * Encodes a utf8 integer array to a ucs2 string.
17
+ * @param s, an integer array
18
+ * @return a string
19
+ */
20
+ utf8_ucs2: (s: any) => string
21
+ }
22
+ export { Base64ForLogin }
23
+ //# sourceMappingURL=base64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/utils/base64.ts"],"names":[],"mappings":"AACA,QAAA,IAAI,cAAc;;IAEhB;;;;OAIG;;IAqCH;;;;OAIG;;IAgCH;;;;OAIG;;CAqCJ,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -6,4 +6,5 @@
6
6
  * @returns Blob数据
7
7
  */
8
8
  export declare function base64ToBlob(base64Data: string, contentType: string): Blob
9
+ export declare function blobToBase64(blob: Blob, hasPrefix?: boolean): Promise<unknown>
9
10
  //# sourceMappingURL=blob.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/utils/blob.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmB1E"}
1
+ {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/utils/blob.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmB1E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,UAAO,oBAcxD"}
@@ -1,6 +1,7 @@
1
1
  export * from './cache'
2
2
  export * from './request'
3
3
  export * from './sm3'
4
+ export * from './base64'
4
5
  export * from './blob'
5
6
  export * from './date'
6
7
  export * from './enum'
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AAErB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AAErB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
@@ -5,5 +5,6 @@ export declare const CONTENT_TYPE: {
5
5
  multiForm: string
6
6
  body: string
7
7
  os: string
8
+ json: string
8
9
  }
9
10
  //# sourceMappingURL=content-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../../src/utils/request/content-type.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,OAEzC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAExD;AAED,eAAO,MAAM,YAAY;;;;;CAKxB,CAAA"}
1
+ {"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../../src/utils/request/content-type.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,OAQzC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAExD;AAED,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAA"}
@@ -8,13 +8,13 @@ interface ColumnGroup {
8
8
  sortOrder?: boolean | 'asc' | 'desc'
9
9
  keyLastSuffix?: string
10
10
  isLimitChildren?: boolean
11
+ headerTooltip?: boolean | string | ((data: any, parents: Array<any>) => string)
11
12
  children?: ColumnGroup[]
12
13
  [propName: string]: any
13
14
  }
14
15
  interface row2columnOption {
15
16
  keyPropName?: string
16
17
  titlePropName?: string
17
- keyPrefix?: string
18
18
  }
19
19
  interface Column {
20
20
  key?: string
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/utils/table.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IAEnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAE1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAEpC,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,eAAe,CAAC,EAAE,OAAO,CAAA;IAGzB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CACxB;AAED,UAAU,gBAAgB;IAExB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,UAAU,MAAM;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CACxB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACjB;AA8GD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAM,EACrB,YAAY,EAAE,WAAW,EAAO,EAChC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAAqB,GAC5B,gBAAgB,CA0BlB;AAkDD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,GAAE,KAAK,CAAC,GAAG,CAAM,EACrB,OAAO,GAAE,MAAM,EAAO,EACtB,MAAM,GAAE,gBAAqB,GAC5B,KAAK,CAAC,GAAG,CAAC,CAMZ"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/utils/table.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IAEnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAE1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAEpC,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,eAAe,CAAC,EAAE,OAAO,CAAA;IAGzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAA;IAG/E,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CACxB;AAED,UAAU,gBAAgB;IAExB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,MAAM;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CACxB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACjB;AA0KD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAM,EACrB,YAAY,EAAE,WAAW,EAAO,EAChC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAAqB,GAC5B,gBAAgB,CA0BlB;AAkDD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,GAAE,KAAK,CAAC,GAAG,CAAM,EACrB,OAAO,GAAE,MAAM,EAAO,EACtB,MAAM,GAAE,gBAAqB,GAC5B,KAAK,CAAC,GAAG,CAAC,CAMZ"}