@sl-material/sl-table-sheet 1.1.0-beta0 → 1.1.0-beta2
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/core/Dialog.d.ts +0 -4
- package/core/excel/parsers/HeaderDetector.d.ts +9 -0
- package/core/styles/dialog.d.ts +2 -2
- package/core/styles/toolbar.d.ts +2 -2
- package/index.d.ts +2 -0
- package/package.json +1 -1
- package/sl-table-sheet.cjs.js +152 -153
- package/sl-table-sheet.es.js +3713 -3676
- package/sl-table-sheet.umd.umd.js +152 -153
- package/core/Dialog-column.d.ts +0 -117
- package/core/ExcelUtils.d.ts +0 -6
- /package/core/{comnon.d.ts → common.d.ts} +0 -0
package/core/Dialog.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface HeaderDetectionResult {
|
|
|
5
5
|
headerRows: number;
|
|
6
6
|
dataStartRow: number;
|
|
7
7
|
effectiveHeaderRows: any[][];
|
|
8
|
+
filteredEmptyRows: number;
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
11
|
* 智能检测 Excel 表头结构
|
|
@@ -14,6 +15,14 @@ export declare class HeaderDetector {
|
|
|
14
15
|
* 检测表头行数
|
|
15
16
|
*/
|
|
16
17
|
static detectHeaderRows(rawData: any[][], userHeaderRows?: number): HeaderDetectionResult;
|
|
18
|
+
/**
|
|
19
|
+
* 过滤掉前三列都为空的前几行
|
|
20
|
+
*/
|
|
21
|
+
private static filterEmptyLeadingRows;
|
|
22
|
+
/**
|
|
23
|
+
* 检查行的前三列是否有内容
|
|
24
|
+
*/
|
|
25
|
+
private static hasContentInFirstThreeColumns;
|
|
17
26
|
/**
|
|
18
27
|
* 自动检测表头行数
|
|
19
28
|
*/
|
package/core/styles/dialog.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dialog 样式
|
|
3
3
|
*/
|
|
4
|
-
export declare const DIALOG_STYLES = "\n .find-replace-dialog {\n position: fixed;\n top: 80px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n font-size: 14px;\n color:
|
|
5
|
-
export declare const DIALOG_STYLE_ID = "find-replace-styles";
|
|
4
|
+
export declare const DIALOG_STYLES = "\n .sl-excel-find-replace-dialog {\n position: fixed;\n top: 80px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n font-size: 14px;\n color: var(--sl-text-color);\n pointer-events: auto;\n }\n\n .sl-excel-find-replace-container {\n background: white;\n border-radius: 8px;\n width: 500px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n animation: slideIn 0.2s ease-out;\n }\n\n @keyframes slideIn {\n from { opacity: 0; transform: translateX(20px); }\n to { opacity: 1; transform: translateX(0); }\n }\n\n .sl-excel-find-replace-title {\n font-size: 16px;\n font-weight: 500;\n color: #303133;\n }\n\n .sl-excel-find-replace-body {\n padding: 16px;\n }\n\n .sl-excel-find-replace-group {\n margin-bottom: 16px;\n display: flex;\n align-items: center;\n }\n\n .sl-excel-find-replace-label {\n display: block;\n min-width: 56px;\n margin-right: 8px;\n }\n\n .sl-excel-find-replace-checkbox {\n display: none;\n align-items: center;\n font-weight: normal;\n min-width: auto;\n margin-right: 0;\n }\n\n .sl-excel-find-replace-checkbox input {\n margin-right: 6px;\n }\n\n .sl-excel-find-replace-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n flex: 1;\n height: 32px;\n }\n\n .sl-excel-find-replace-input {\n width: 100%;\n padding: 0px 12px;\n border: 1px solid var(--sl-border-color);\n border-radius: 4px;\n height: 32px;\n }\n\n .sl-excel-find-replace-input:focus {\n outline: none;\n border-color: var(--sl-color-primary);\n }\n\n\n .sl-excel-find-replace-footer {\n padding: 0px 16px 16px 16px;\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .sl-excel-find-replace-btn {\n padding: 6px 16px;\n border-radius: 4px;\n height: 32px;\n cursor: pointer;\n background: var(--sl-color-white);\n border: 1px solid var(--sl-border-color);\n }\n .sl-excel-find-replace-btn:hover{\n color:var(--sl-text-color-thridary)\n }\n\n .sl-excel-find-replace-btn-primary {\n background-color: var(--sl-color-primary);\n color: var(--sl-color-white);\n }\n\n .sl-excel-find-replace-btn-primary:hover {\n border-color: var(--sl-color-primary-light-3);\n background-color: var(--sl-color-primary-light-3);\n color:var(--sl-color-white);\n }\n\n .sl-excel-message-toast {\n height: 40px;\n position: fixed;\n top: 20px;\n left: 50%;\n transform: translateX(-50%) translateY(-100px);\n padding: 11px 15px;\n color: white;\n border-radius: 4px;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n z-index: 9999;\n opacity: 0;\n transition: all 0.3s ease-out;\n display: flex;\n align-items: center;\n }\n\n .sl-excel-message-toast--info {\n background-color: var(--sl-color-info-light-9);\n border: 1px solid var(--sl-color-info-light-8);\n color: var(--sl-color-info);\n }\n\n .sl-excel-message-toast--success {\n background-color: var(--sl-color-success-light-9);\n border: 1px solid var(--sl-color-success-light-8);\n color: var(--sl-color-success);\n }\n\n .sl-excel-message-toast--warning {\n background-color: var(--sl-color-warning-light-9);\n border: 1px solid var(--sl-color-warning-light-8);\n color: var(--sl-color-warning);\n }\n\n .sl-excel-message-toast--error {\n background-color: var(--sl-color-error-light-9);\n border: 1px solid var(--sl-color-error-light-8);\n color: var(--sl-color-error);\n }\n\n .sl-excel-message-toast.show {\n transform: translateX(-50%) translateY(0);\n opacity: 1;\n }\n";
|
|
5
|
+
export declare const DIALOG_STYLE_ID = "sl-excel-find-replace-styles";
|
package/core/styles/toolbar.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Toolbar 样式
|
|
3
3
|
*/
|
|
4
|
-
export declare const TOOLBAR_STYLES = "\n .sl-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n background: var(--sl-vtable-card-bg-color);\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n flex-shrink: 0;\n border-radius: 4px;\n }\n \n .sl-toolbar-right {\n display: flex;\n align-items: center;\n gap: 24px;\n }\n\n .sl-toolbar-btn {\n padding: 6px 16px;\n height: 32px;\n border: 1px solid var(--sl-vtable-bg-color1);\n border-radius: 4px;\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n cursor: pointer;\n white-space: nowrap;\n }\n\n .sl-toolbar-btn:hover {\n background: #E8E9EB;\n }\n\n .sl-toolbar-btn-icon {\n padding: 6px 10px;\n font-size: 16px;\n min-width: 32px;\n }\n\n .sl-toolbar-btn-complex {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .sl-btn-icon {\n font-size: 14px;\n }\n\n .sl-btn-text {\n font-size: 14px;\n }\n\n .sl-btn-count {\n font-size: 14px;\n font-weight: 600;\n color: var(--sl-vtable-primary-color);\n }\n\n .sl-btn-suffix {\n font-size: 14px;\n }\n\n .sl-freeze-selector {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .sl-freeze-label {\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n white-space: nowrap;\n }\n\n .sl-freeze-input-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n background: var(--sl-vtable-bg-color1);\n border: 1px solid var(--sl-vtable-bg-color1);\n border-radius: 4px;\n transition: all 0.2s;\n height: 32px;\n box-sizing: border-box;\n }\n\n .sl-freeze-input-wrapper:focus-within {\n border-color: var(--sl-vtable-primary-color);\n box-shadow: 0 0 0 2px rgba(40, 120, 255, 0.1);\n }\n\n .sl-freeze-input {\n width: 30px;\n height: 30px;\n padding: 0px 2px;\n border-radius: 4px 0px 0px 4px;\n background:
|
|
5
|
-
export declare const TOOLBAR_STYLE_ID = "sl-toolbar-styles";
|
|
4
|
+
export declare const TOOLBAR_STYLES = "\n .sl-excel-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n background: var(--sl-vtable-card-bg-color);\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n flex-shrink: 0;\n border-radius: 4px;\n }\n \n .sl-excel-toolbar-right {\n display: flex;\n align-items: center;\n gap: 24px;\n }\n\n .sl-excel-toolbar-btn {\n padding: 6px 16px;\n height: 32px;\n border: 1px solid var(--sl-vtable-bg-color1);\n border-radius: 4px;\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n cursor: pointer;\n white-space: nowrap;\n }\n\n .sl-excel-toolbar-btn:hover {\n background: #E8E9EB;\n }\n\n .sl-excel-toolbar-btn-icon {\n padding: 6px 10px;\n font-size: 16px;\n min-width: 32px;\n }\n\n .sl-excel-toolbar-btn-complex {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .sl-excel-btn-icon {\n font-size: 14px;\n }\n\n .sl-excel-btn-text {\n font-size: 14px;\n }\n\n .sl-excel-btn-count {\n font-size: 14px;\n font-weight: 600;\n color: var(--sl-vtable-primary-color);\n }\n\n .sl-excel-btn-suffix {\n font-size: 14px;\n }\n\n .sl-excel-freeze-selector {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .sl-excel-freeze-label {\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n white-space: nowrap;\n }\n\n .sl-excel-freeze-input-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n background: var(--sl-vtable-bg-color1);\n border: 1px solid var(--sl-vtable-bg-color1);\n border-radius: 4px;\n transition: all 0.2s;\n height: 32px;\n box-sizing: border-box;\n }\n\n .sl-excel-freeze-input-wrapper:focus-within {\n border-color: var(--sl-vtable-primary-color);\n box-shadow: 0 0 0 2px rgba(40, 120, 255, 0.1);\n }\n\n .sl-excel-freeze-input {\n width: 30px;\n height: 30px;\n padding: 0px 2px;\n border-radius: 4px 0px 0px 4px;\n background: var(--sl-color-white);\n border: none;\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n text-align: center;\n outline: none;\n -moz-appearance: textfield;\n }\n\n .sl-excel-freeze-input::-webkit-outer-spin-button,\n .sl-excel-freeze-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n .sl-excel-freeze-arrows {\n display: flex;\n flex-direction: column;\n border-left: 1px solid #E5E6EB;\n }\n\n .sl-excel-freeze-arrow {\n width: 20px;\n height: 10px;\n padding: 0;\n background: transparent;\n border: none;\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n\n .sl-excel-freeze-arrow-up {\n border-radius: 0 8px 0 0;\n }\n\n .sl-excel-freeze-arrow-down {\n border-radius: 0 0 8px 0;\n transform: rotate(180deg);\n }\n\n .sl-excel-freeze-suffix {\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n }\n\n .sl-excel-error-list-checkbox {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n user-select: none;\n }\n\n .sl-excel-checkbox-input {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n }\n\n .sl-excel-checkbox-custom {\n position: relative;\n width: 16px;\n height: 16px;\n border: 2px solid #C9CDD4;\n border-radius: 4px;\n background: var(--sl-color-white);\n transition: all 0.2s;\n flex-shrink: 0;\n }\n\n .sl-excel-checkbox-input:checked + .sl-excel-checkbox-custom {\n background: var(--sl-vtable-primary-color);\n border-color: var(--sl-vtable-primary-color);\n }\n\n .sl-excel-checkbox-input:checked + .sl-excel-checkbox-custom::after {\n content: \"\";\n position: absolute;\n left: 4px;\n top: 1px;\n width: 4px;\n height: 8px;\n border: solid white;\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n\n .sl-excel-error-list-checkbox:hover .sl-excel-checkbox-custom {\n border-color: var(--sl-vtable-primary-color);\n }\n\n .sl-excel-checkbox-label {\n font-size: 14px;\n color: var(--sl-vtable-content-color);\n }\n\n /* \u54CD\u5E94\u5F0F\u8BBE\u8BA1 */\n @media (max-width: 768px) {\n .sl-excel-toolbar {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .sl-excel-toolbar-left {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .sl-excel-toolbar-right {\n width: 100%;\n justify-content: flex-start;\n flex-wrap: wrap;\n }\n }\n";
|
|
5
|
+
export declare const TOOLBAR_STYLE_ID = "sl-excel-toolbar-styles";
|
package/index.d.ts
CHANGED
|
@@ -7,4 +7,6 @@ export { loadExcelFromUrl, parseExcelFile, parseExcelBuffer, fetchExcelFromUrl,
|
|
|
7
7
|
export type { ExcelParseOptions, ExcelParseResult, CellStyle, SheetData, MultiSheetParseResult, } from './core/excel';
|
|
8
8
|
export { SheetTabs } from './core/SheetTabs';
|
|
9
9
|
export type { SheetTabsConfig } from './core/SheetTabs';
|
|
10
|
+
export { FindReplaceDialog } from './core/Dialog';
|
|
11
|
+
export type { MatchPosition, FindReplaceOptions } from './core/Dialog';
|
|
10
12
|
export { SlTableSheet as default } from './core/SlTableSheet';
|