xlkit 1.0.4 → 1.1.0

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/README.md CHANGED
@@ -134,26 +134,17 @@ header: {
134
134
  ```
135
135
 
136
136
  ### 5. 行スタイル (`rows`)
137
-
138
- 行ごとのスタイル(縞模様など)を定義できます。
139
-
140
- ```typescript
141
- rows: {
142
- style: (data, index) => {
143
- // 偶数行に背景色をつける
144
- return index % 2 === 0 ? { fill: { color: '#F0F0F0' } } : {};
145
- }
146
- }
147
- ```
148
-
149
- また、データ行に `style` プロパティを含めることで、特定の行にスタイルを適用することも可能です。
150
-
151
- ```typescript
152
- const data = [
153
- { name: 'Tom', age: 28 },
154
- { name: 'Mary', age: 25, style: { fill: { color: '#FFFF00' } } }, // Maryの行は黄色背景
155
- ];
156
- ```
137
+
138
+ 行ごとのスタイル(縞模様など)を定義できます。
139
+
140
+ ```typescript
141
+ rows: {
142
+ style: (data, index) => {
143
+ // 偶数行に背景色をつける
144
+ return index % 2 === 0 ? { fill: { color: '#F0F0F0' } } : {};
145
+ }
146
+ }
147
+ ```
157
148
 
158
149
  ### 6. ブラウザ環境でのダウンロード
159
150
 
@@ -1,8 +1,9 @@
1
- import { SheetDef } from './types';
1
+ import { SheetConfig } from './types';
2
2
  export declare class XLKit {
3
3
  private workbook;
4
4
  constructor();
5
- addSheet<T>(def: SheetDef<T>, data: T[]): XLKit;
5
+ addSheet(config: SheetConfig): XLKit;
6
+ private isCellValueWithStyle;
6
7
  save(path: string, options?: {
7
8
  timeout?: number;
8
9
  }): Promise<void>;
@@ -14,5 +15,4 @@ export declare class XLKit {
14
15
  }): Promise<void>;
15
16
  }
16
17
  export declare function createWorkbook(): XLKit;
17
- export declare function defineSheet<T>(def: SheetDef<T>): SheetDef<T>;
18
18
  //# sourceMappingURL=Sheetflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sheetflow.d.ts","sourceRoot":"","sources":["../src/Sheetflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAsB,MAAM,SAAS,CAAC;AAGvD,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAmB;;IAMnC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK;IAoLzC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjE,YAAY,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAajE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBhF;AAED,wBAAgB,cAAc,IAAI,KAAK,CAEtC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE5D"}
1
+ {"version":3,"file":"Sheetflow.d.ts","sourceRoot":"","sources":["../src/Sheetflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAA+C,MAAM,SAAS,CAAC;AAGnF,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAmB;;IAMnC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK;IAkRpC,OAAO,CAAC,oBAAoB;IAQtB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjE,YAAY,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAajE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBhF;AAED,wBAAgB,cAAc,IAAI,KAAK,CAEtC"}
package/dist/Sheetflow.js CHANGED
@@ -5,39 +5,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.XLKit = void 0;
7
7
  exports.createWorkbook = createWorkbook;
8
- exports.defineSheet = defineSheet;
9
8
  const exceljs_1 = __importDefault(require("exceljs"));
10
9
  const style_1 = require("./utils/style");
11
10
  class XLKit {
12
11
  constructor() {
13
12
  this.workbook = new exceljs_1.default.Workbook();
14
13
  }
15
- addSheet(def, data) {
14
+ addSheet(config) {
16
15
  // Validate Sheet Name
17
- if (!def.name) {
16
+ if (!config.name) {
18
17
  throw new Error('Sheet name is required.');
19
18
  }
20
- if (def.name.length > 31) {
21
- throw new Error(`Sheet name "${def.name}" exceeds the maximum length of 31 characters.`);
19
+ if (config.name.length > 31) {
20
+ throw new Error(`Sheet name "${config.name}" exceeds the maximum length of 31 characters.`);
22
21
  }
23
22
  // Invalid characters: \ / ? * [ ] :
24
23
  const invalidChars = /[\\/?*[\]:]/;
25
- if (invalidChars.test(def.name)) {
26
- throw new Error(`Sheet name "${def.name}" contains invalid characters (\\ / ? * [ ] :).`);
24
+ if (invalidChars.test(config.name)) {
25
+ throw new Error(`Sheet name "${config.name}" contains invalid characters (\\ / ? * [ ] :).`);
27
26
  }
28
- const sheet = this.workbook.addWorksheet(def.name);
27
+ const sheet = this.workbook.addWorksheet(config.name);
28
+ const data = config.rows;
29
+ // Handle autoWidth
30
+ const autoWidthConfig = typeof config.autoWidth === 'boolean'
31
+ ? { enabled: config.autoWidth }
32
+ : config.autoWidth || {};
33
+ const autoWidthEnabled = autoWidthConfig.enabled !== false;
29
34
  // 1. Setup Columns & Headers
30
- const columns = def.columns.map((col, colIndex) => {
31
- let width = col.width;
32
- // Validate Column Key
33
- if (col.key === 'style') {
34
- throw new Error("Column key 'style' is reserved for row styling and cannot be used as a column key.");
35
+ const columns = config.headers.map((header, colIndex) => {
36
+ let width = header.width;
37
+ // Apply autoWidth if no width specified and autoWidth is enabled
38
+ if (!width && autoWidthEnabled) {
39
+ width = 'auto';
35
40
  }
36
41
  if (width === 'auto') {
37
- let maxLen = col.header.length * (def.autoWidth?.headerIncluded !== false ? 1 : 0);
38
- // Check data length (sample first 100 rows for performance if needed, currently all)
42
+ // Get header label text
43
+ const headerText = typeof header.label === 'string'
44
+ ? header.label
45
+ : header.label.value;
46
+ let maxLen = headerText.length * (autoWidthConfig.headerIncluded !== false ? 1 : 0);
47
+ // Check data length
39
48
  data.forEach(row => {
40
- const val = row[col.key];
49
+ const cellData = row[header.key];
50
+ const val = this.isCellValueWithStyle(cellData) ? cellData.value : cellData;
41
51
  const str = val != null ? String(val) : '';
42
52
  // Simple full-width check: count as 2 if char code > 255
43
53
  let len = 0;
@@ -47,71 +57,137 @@ class XLKit {
47
57
  if (len > maxLen)
48
58
  maxLen = len;
49
59
  });
50
- const padding = def.autoWidth?.padding ?? 2;
51
- const constant = def.autoWidth?.charWidthConstant ?? 1.2;
60
+ const padding = autoWidthConfig.padding ?? 2;
61
+ const constant = autoWidthConfig.charWidthConstant ?? 1.2;
52
62
  width = (maxLen + padding) * constant;
53
63
  }
64
+ // Get header label text for ExcelJS
65
+ const headerText = typeof header.label === 'string'
66
+ ? header.label
67
+ : header.label.value;
54
68
  return {
55
- header: col.header,
56
- key: String(col.key),
57
- width: typeof width === 'number' ? width : 15,
58
- style: col.style && typeof col.style === 'object' ? (0, style_1.mapStyle)(col.style) : undefined
69
+ header: headerText,
70
+ key: String(header.key),
71
+ width: typeof width === 'number' ? width : 15
59
72
  };
60
73
  });
61
74
  sheet.columns = columns;
62
- // 2. Add Data & Apply Row Styles
63
- data.forEach((row, rowIndex) => {
64
- const addedRow = sheet.addRow(row);
65
- // Apply row-level style from definition
66
- if (def.rows?.style) {
67
- const rowStyle = def.rows.style(row, rowIndex);
68
- const mappedStyle = (0, style_1.mapStyle)(rowStyle);
69
- addedRow.eachCell((cell) => {
70
- cell.style = { ...cell.style, ...mappedStyle };
71
- });
72
- }
73
- // Apply row-level style from data (if 'style' property exists)
74
- if (row.style) {
75
- const dataRowStyle = row.style;
76
- const mappedStyle = (0, style_1.mapStyle)(dataRowStyle);
77
- addedRow.eachCell((cell) => {
78
- cell.style = { ...cell.style, ...mappedStyle };
79
- });
80
- }
81
- // Apply column-level conditional styles
82
- def.columns.forEach((col, colIndex) => {
83
- if (typeof col.style === 'function') {
84
- const cell = addedRow.getCell(colIndex + 1);
85
- const cellStyle = col.style(row[col.key], row, rowIndex);
86
- cell.style = { ...cell.style, ...(0, style_1.mapStyle)(cellStyle) };
75
+ // 2. Apply Title Rows (if any)
76
+ if (config.title) {
77
+ const titleLabels = Array.isArray(config.title.label)
78
+ ? config.title.label
79
+ : [config.title.label];
80
+ titleLabels.forEach(titleText => {
81
+ const titleRow = sheet.insertRow(1, [titleText]);
82
+ // Merge title across all columns
83
+ if (config.headers.length > 1) {
84
+ sheet.mergeCells(1, 1, 1, config.headers.length);
87
85
  }
88
- if (col.format) {
89
- const cell = addedRow.getCell(colIndex + 1);
90
- if (typeof col.format === 'string') {
91
- cell.numFmt = col.format;
92
- }
93
- else {
94
- cell.value = col.format(row[col.key]);
95
- }
86
+ // Apply title style
87
+ if (config.title.style) {
88
+ const mappedTitleStyle = (0, style_1.mapStyle)(config.title.style);
89
+ titleRow.eachCell((cell) => {
90
+ cell.style = { ...cell.style, ...mappedTitleStyle };
91
+ });
96
92
  }
97
93
  });
94
+ }
95
+ // Calculate header row index (after title rows)
96
+ const titleRowCount = config.title
97
+ ? (Array.isArray(config.title.label) ? config.title.label.length : 1)
98
+ : 0;
99
+ const headerRowIndex = titleRowCount + 1;
100
+ // 3. Apply Header Cell Styles (from headers[].label.style)
101
+ const headerRow = sheet.getRow(headerRowIndex);
102
+ config.headers.forEach((header, colIndex) => {
103
+ if (typeof header.label === 'object' && header.label.style) {
104
+ const cell = headerRow.getCell(colIndex + 1);
105
+ const mappedStyle = (0, style_1.mapStyle)(header.label.style);
106
+ cell.style = { ...cell.style, ...mappedStyle };
107
+ }
98
108
  });
99
- // 3. Apply Header Styles
100
- if (def.header?.style) {
101
- const headerRow = sheet.getRow(1);
102
- const mappedHeaderStyle = (0, style_1.mapStyle)(def.header.style);
109
+ // 4. Apply Header Row Style (from styles.header)
110
+ if (config.styles?.header) {
111
+ const mappedHeaderStyle = (0, style_1.mapStyle)(config.styles.header);
103
112
  headerRow.eachCell((cell) => {
104
113
  cell.style = { ...cell.style, ...mappedHeaderStyle };
105
114
  });
106
115
  }
107
- // 4. Apply Vertical Merges
108
- def.columns.forEach((col, colIndex) => {
109
- if (col.merge === 'vertical') {
110
- let startRow = 2; // 1-based, skip header (row 1)
116
+ // 5. Apply styles.all to header row
117
+ if (config.styles?.all) {
118
+ const mappedAllStyle = (0, style_1.mapStyle)(config.styles.all);
119
+ headerRow.eachCell((cell) => {
120
+ cell.style = { ...mappedAllStyle, ...cell.style };
121
+ });
122
+ }
123
+ // 6. Add Data & Apply Styles
124
+ data.forEach((rowData, rowIndex) => {
125
+ const rowValues = {};
126
+ // Extract values from row data
127
+ config.headers.forEach(header => {
128
+ const cellData = rowData[header.key];
129
+ rowValues[header.key] = this.isCellValueWithStyle(cellData) ? cellData.value : cellData;
130
+ });
131
+ const addedRow = sheet.addRow(rowValues);
132
+ const excelRowIndex = headerRowIndex + rowIndex + 1;
133
+ // Apply styles to each cell
134
+ config.headers.forEach((header, colIndex) => {
135
+ const cell = addedRow.getCell(colIndex + 1);
136
+ const cellData = rowData[header.key];
137
+ const cellValue = this.isCellValueWithStyle(cellData) ? cellData.value : cellData;
138
+ // Apply styles in priority order
139
+ let finalStyle = {};
140
+ // 1. styles.all
141
+ if (config.styles?.all) {
142
+ finalStyle = { ...finalStyle, ...(0, style_1.mapStyle)(config.styles.all) };
143
+ }
144
+ // 2. styles.body
145
+ if (config.styles?.body) {
146
+ finalStyle = { ...finalStyle, ...(0, style_1.mapStyle)(config.styles.body) };
147
+ }
148
+ // 3. styles.column[key]
149
+ if (config.styles?.column?.[header.key]) {
150
+ finalStyle = { ...finalStyle, ...(0, style_1.mapStyle)(config.styles.column[header.key]) };
151
+ }
152
+ // 4. styles.row(data, index)
153
+ if (config.styles?.row) {
154
+ const rowStyle = config.styles.row(rowData, rowIndex);
155
+ finalStyle = { ...finalStyle, ...(0, style_1.mapStyle)(rowStyle) };
156
+ }
157
+ // 5. headers[].style (object or function)
158
+ if (header.style) {
159
+ if (typeof header.style === 'function') {
160
+ const cellStyle = header.style(cellValue, rowData, rowIndex);
161
+ finalStyle = { ...finalStyle, ...(0, style_1.mapStyle)(cellStyle) };
162
+ }
163
+ else {
164
+ finalStyle = { ...finalStyle, ...(0, style_1.mapStyle)(header.style) };
165
+ }
166
+ }
167
+ // 6. rows[].{key}.style (highest priority)
168
+ if (this.isCellValueWithStyle(cellData) && cellData.style) {
169
+ finalStyle = { ...finalStyle, ...(0, style_1.mapStyle)(cellData.style) };
170
+ }
171
+ cell.style = finalStyle;
172
+ // Apply format
173
+ if (header.format) {
174
+ if (typeof header.format === 'string') {
175
+ cell.numFmt = header.format;
176
+ }
177
+ else {
178
+ cell.value = header.format(cellValue);
179
+ }
180
+ }
181
+ });
182
+ });
183
+ // 7. Apply Vertical Merges
184
+ config.headers.forEach((header, colIndex) => {
185
+ if (header.merge === 'vertical') {
186
+ let startRow = headerRowIndex + 1; // First data row
111
187
  let previousValue = null;
112
188
  // Iterate from first data row to last
113
189
  for (let i = 0; i < data.length; i++) {
114
- const currentRowIndex = i + 2;
190
+ const currentRowIndex = headerRowIndex + i + 1;
115
191
  const cell = sheet.getCell(currentRowIndex, colIndex + 1);
116
192
  const currentValue = cell.value;
117
193
  if (i === 0) {
@@ -128,14 +204,14 @@ class XLKit {
128
204
  }
129
205
  }
130
206
  // Handle the last group
131
- const lastRowIndex = data.length + 1;
207
+ const lastRowIndex = headerRowIndex + data.length;
132
208
  if (lastRowIndex > startRow) {
133
209
  sheet.mergeCells(startRow, colIndex + 1, lastRowIndex, colIndex + 1);
134
210
  }
135
211
  }
136
212
  });
137
- // 5. Apply Borders
138
- if (def.borders === 'all') {
213
+ // 8. Apply Borders
214
+ if (config.borders === 'all') {
139
215
  sheet.eachRow((row) => {
140
216
  row.eachCell((cell) => {
141
217
  cell.border = {
@@ -147,7 +223,7 @@ class XLKit {
147
223
  });
148
224
  });
149
225
  }
150
- else if (def.borders === 'outer') {
226
+ else if (config.borders === 'outer') {
151
227
  const lastRow = sheet.rowCount;
152
228
  const lastCol = sheet.columnCount;
153
229
  // Top & Bottom
@@ -165,15 +241,22 @@ class XLKit {
165
241
  rightCell.border = { ...rightCell.border, right: { style: 'thin' } };
166
242
  }
167
243
  }
168
- else if (def.borders === 'header-body') {
244
+ else if (config.borders === 'header-body') {
169
245
  const lastCol = sheet.columnCount;
170
246
  for (let c = 1; c <= lastCol; c++) {
171
- const headerCell = sheet.getCell(1, c);
247
+ const headerCell = sheet.getCell(headerRowIndex, c);
172
248
  headerCell.border = { ...headerCell.border, bottom: { style: 'medium' } };
173
249
  }
174
250
  }
175
251
  return this;
176
252
  }
253
+ isCellValueWithStyle(val) {
254
+ return val !== null &&
255
+ typeof val === 'object' &&
256
+ 'value' in val &&
257
+ !Array.isArray(val) &&
258
+ !(val instanceof Date);
259
+ }
177
260
  async save(path, options) {
178
261
  if (!path || path.trim() === '') {
179
262
  throw new Error('File path cannot be empty.');
@@ -219,6 +302,3 @@ exports.XLKit = XLKit;
219
302
  function createWorkbook() {
220
303
  return new XLKit();
221
304
  }
222
- function defineSheet(def) {
223
- return def;
224
- }
package/dist/types.d.ts CHANGED
@@ -12,29 +12,43 @@ export interface XLStyle {
12
12
  alignment?: Partial<Alignment>;
13
13
  border?: Partial<Border> | 'all' | 'outer' | 'header-body' | 'none';
14
14
  }
15
- export interface ColumnDef<T> {
16
- key: keyof T;
17
- header: string;
15
+ export type CellValue = any | {
16
+ value: any;
17
+ style?: XLStyle;
18
+ };
19
+ export interface HeaderDef {
20
+ key: string;
21
+ label: string | {
22
+ value: string;
23
+ style?: XLStyle;
24
+ };
18
25
  width?: number | 'auto';
19
26
  merge?: 'vertical';
20
- style?: XLStyle | ((val: any, row: T, index: number) => XLStyle);
27
+ style?: XLStyle | ((val: any, row: any, index: number) => XLStyle);
21
28
  format?: string | ((val: any) => string);
22
29
  }
23
- export interface HeaderConfig {
24
- rows: string[];
30
+ export interface TitleConfig {
31
+ label: string | string[];
25
32
  style?: XLStyle;
26
- borders?: 'header-body' | 'all' | 'none';
27
33
  }
28
- export interface SheetDef<T> {
29
- name: string;
30
- columns: ColumnDef<T>[];
31
- header?: HeaderConfig;
32
- rows?: {
33
- style?: (data: T, index: number) => XLStyle;
34
+ export interface StylesConfig {
35
+ all?: XLStyle;
36
+ header?: XLStyle;
37
+ body?: XLStyle;
38
+ row?: (data: any, index: number) => XLStyle;
39
+ column?: {
40
+ [key: string]: XLStyle;
34
41
  };
35
- defaultStyle?: XLStyle;
42
+ }
43
+ export interface SheetConfig {
44
+ name: string;
45
+ headers: HeaderDef[];
46
+ rows: any[];
47
+ title?: TitleConfig;
48
+ styles?: StylesConfig;
36
49
  borders?: 'all' | 'outer' | 'header-body' | 'none';
37
- autoWidth?: {
50
+ autoWidth?: boolean | {
51
+ enabled?: boolean;
38
52
  padding?: number;
39
53
  headerIncluded?: boolean;
40
54
  charWidthConstant?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;CACrE;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;KAC7C,CAAC;IACF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;IACnD,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;CACrE;AAGD,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG;IAC5B,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACnE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,GAAG;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xlkit",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [