@gcsa/console-core 0.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/dist/gcsaChat.d.ts +6 -0
- package/dist/gcsaChat.d.ts.map +1 -0
- package/dist/gcsaChat.js +31 -0
- package/dist/gcsaClipboard.d.ts +2 -0
- package/dist/gcsaClipboard.d.ts.map +1 -0
- package/dist/gcsaClipboard.js +30 -0
- package/dist/gcsaCssLength.d.ts +3 -0
- package/dist/gcsaCssLength.d.ts.map +1 -0
- package/dist/gcsaCssLength.js +6 -0
- package/dist/gcsaDate.d.ts +15 -0
- package/dist/gcsaDate.d.ts.map +1 -0
- package/dist/gcsaDate.js +12 -0
- package/dist/gcsaDateTimeValue.d.ts +8 -0
- package/dist/gcsaDateTimeValue.d.ts.map +1 -0
- package/dist/gcsaDateTimeValue.js +16 -0
- package/dist/gcsaLocale.d.ts +109 -0
- package/dist/gcsaLocale.d.ts.map +1 -0
- package/dist/gcsaLocale.js +320 -0
- package/dist/gcsaMarkdown.d.ts +2 -0
- package/dist/gcsaMarkdown.d.ts.map +1 -0
- package/dist/gcsaMarkdown.js +19 -0
- package/dist/gcsaMenu.d.ts +21 -0
- package/dist/gcsaMenu.d.ts.map +1 -0
- package/dist/gcsaMenu.js +20 -0
- package/dist/gcsaMessage.d.ts +3 -0
- package/dist/gcsaMessage.d.ts.map +1 -0
- package/dist/gcsaMessage.js +1 -0
- package/dist/gcsaPagination.d.ts +13 -0
- package/dist/gcsaPagination.d.ts.map +1 -0
- package/dist/gcsaPagination.js +52 -0
- package/dist/gcsaPopupCollision.d.ts +22 -0
- package/dist/gcsaPopupCollision.d.ts.map +1 -0
- package/dist/gcsaPopupCollision.js +66 -0
- package/dist/gcsaPopupPositioning.d.ts +30 -0
- package/dist/gcsaPopupPositioning.d.ts.map +1 -0
- package/dist/gcsaPopupPositioning.js +18 -0
- package/dist/gcsaPopupStyles.d.ts +51 -0
- package/dist/gcsaPopupStyles.d.ts.map +1 -0
- package/dist/gcsaPopupStyles.js +115 -0
- package/dist/gcsaSize.d.ts +9 -0
- package/dist/gcsaSize.d.ts.map +1 -0
- package/dist/gcsaSize.js +13 -0
- package/dist/gcsaTableEvents.d.ts +27 -0
- package/dist/gcsaTableEvents.d.ts.map +1 -0
- package/dist/gcsaTableEvents.js +13 -0
- package/dist/gcsaTableLayout.d.ts +23 -0
- package/dist/gcsaTableLayout.d.ts.map +1 -0
- package/dist/gcsaTableLayout.js +36 -0
- package/dist/gcsaTableMigration.d.ts +34 -0
- package/dist/gcsaTableMigration.d.ts.map +1 -0
- package/dist/gcsaTableMigration.js +65 -0
- package/dist/gcsaTablePreferences.d.ts +16 -0
- package/dist/gcsaTablePreferences.d.ts.map +1 -0
- package/dist/gcsaTablePreferences.js +53 -0
- package/dist/gcsaTableRows.d.ts +8 -0
- package/dist/gcsaTableRows.d.ts.map +1 -0
- package/dist/gcsaTableRows.js +29 -0
- package/dist/gcsaTime.d.ts +23 -0
- package/dist/gcsaTime.d.ts.map +1 -0
- package/dist/gcsaTime.js +63 -0
- package/dist/index.d.ts +163 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/package.json +37 -0
- package/src/gcsaChat.ts +35 -0
- package/src/gcsaClipboard.ts +28 -0
- package/src/gcsaCssLength.ts +5 -0
- package/src/gcsaDate.ts +30 -0
- package/src/gcsaDateTimeValue.ts +18 -0
- package/src/gcsaLocale.ts +431 -0
- package/src/gcsaMarkdown.ts +19 -0
- package/src/gcsaMenu.ts +43 -0
- package/src/gcsaMessage.ts +3 -0
- package/src/gcsaPagination.ts +68 -0
- package/src/gcsaPopupCollision.ts +111 -0
- package/src/gcsaPopupPositioning.ts +57 -0
- package/src/gcsaPopupStyles.ts +137 -0
- package/src/gcsaSize.ts +29 -0
- package/src/gcsaTableEvents.ts +36 -0
- package/src/gcsaTableLayout.ts +69 -0
- package/src/gcsaTableMigration.ts +104 -0
- package/src/gcsaTablePreferences.ts +61 -0
- package/src/gcsaTableRows.ts +36 -0
- package/src/gcsaTime.ts +83 -0
- package/src/index.ts +237 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { GcsaChatMessage, GcsaChatMessageRole } from './index';
|
|
2
|
+
export type GcsaChatMarkdownMode = false | true | 'assistant';
|
|
3
|
+
export declare function shouldRenderGcsaChatMarkdown(message: GcsaChatMessage, mode?: GcsaChatMarkdownMode): boolean;
|
|
4
|
+
export declare function gcsaChatAvatarLabel(message: GcsaChatMessage, labels?: Partial<Record<GcsaChatMessageRole, string>>): string;
|
|
5
|
+
export declare function formatGcsaChatTime(value?: string | number | Date): string;
|
|
6
|
+
//# sourceMappingURL=gcsaChat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaChat.d.ts","sourceRoot":"","sources":["../src/gcsaChat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,IAAI,GAAG,WAAW,CAAC;AAE9D,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,oBAAkC,GACvC,OAAO,CAKT;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,EACxB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GACpD,MAAM,CAKR;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAUzE"}
|
package/dist/gcsaChat.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function shouldRenderGcsaChatMarkdown(message, mode = 'assistant') {
|
|
2
|
+
if (message.plainText)
|
|
3
|
+
return false;
|
|
4
|
+
if (mode === false)
|
|
5
|
+
return false;
|
|
6
|
+
if (mode === true)
|
|
7
|
+
return true;
|
|
8
|
+
return message.role === 'assistant' && !message.systemReady;
|
|
9
|
+
}
|
|
10
|
+
export function gcsaChatAvatarLabel(message, labels) {
|
|
11
|
+
if (labels?.[message.role])
|
|
12
|
+
return labels[message.role];
|
|
13
|
+
if (message.role === 'user')
|
|
14
|
+
return 'U';
|
|
15
|
+
if (message.role === 'system')
|
|
16
|
+
return 'S';
|
|
17
|
+
return 'A';
|
|
18
|
+
}
|
|
19
|
+
export function formatGcsaChatTime(value) {
|
|
20
|
+
if (value == null || value === '')
|
|
21
|
+
return '';
|
|
22
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
23
|
+
if (Number.isNaN(date.getTime()))
|
|
24
|
+
return '';
|
|
25
|
+
return date.toLocaleString(undefined, {
|
|
26
|
+
month: '2-digit',
|
|
27
|
+
day: '2-digit',
|
|
28
|
+
hour: '2-digit',
|
|
29
|
+
minute: '2-digit'
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaClipboard.d.ts","sourceRoot":"","sources":["../src/gcsaClipboard.ts"],"names":[],"mappings":"AAAA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BjE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export async function copyGcsaText(text) {
|
|
2
|
+
if (!text)
|
|
3
|
+
return false;
|
|
4
|
+
try {
|
|
5
|
+
if (typeof navigator !== 'undefined' && navigator.clipboard?.writeText) {
|
|
6
|
+
await navigator.clipboard.writeText(text);
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
// fall through to legacy copy
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
if (typeof document === 'undefined')
|
|
15
|
+
return false;
|
|
16
|
+
const textarea = document.createElement('textarea');
|
|
17
|
+
textarea.value = text;
|
|
18
|
+
textarea.setAttribute('readonly', '');
|
|
19
|
+
textarea.style.position = 'fixed';
|
|
20
|
+
textarea.style.left = '-9999px';
|
|
21
|
+
document.body.appendChild(textarea);
|
|
22
|
+
textarea.select();
|
|
23
|
+
const ok = document.execCommand('copy');
|
|
24
|
+
document.body.removeChild(textarea);
|
|
25
|
+
return ok;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaCssLength.d.ts","sourceRoot":"","sources":["../src/gcsaCssLength.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAGvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** ISO 日期字符串 YYYY-MM-DD */
|
|
2
|
+
export type GcsaDateString = string;
|
|
3
|
+
/** ISO 年月字符串 YYYY-MM */
|
|
4
|
+
export type GcsaMonthString = string;
|
|
5
|
+
/** 日期范围 [开始, 结束],均为 YYYY-MM-DD;未选时对应项为空字符串 */
|
|
6
|
+
export type GcsaDateRangeValue = [GcsaDateString, GcsaDateString];
|
|
7
|
+
/** 年月范围 [开始, 结束],均为 YYYY-MM;未选时对应项为空字符串 */
|
|
8
|
+
export type GcsaMonthRangeValue = [GcsaMonthString, GcsaMonthString];
|
|
9
|
+
/** DatePicker / DateRangePicker 选择粒度 */
|
|
10
|
+
export type GcsaDatePickerMode = 'date' | 'month';
|
|
11
|
+
export declare function isGcsaDateString(value: string): boolean;
|
|
12
|
+
export declare function isGcsaMonthString(value: string): boolean;
|
|
13
|
+
export declare function formatGcsaDateParts(year: number, month: number, day: number): GcsaDateString;
|
|
14
|
+
export declare function formatGcsaMonthParts(year: number, month: number): GcsaMonthString;
|
|
15
|
+
//# sourceMappingURL=gcsaDate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaDate.d.ts","sourceRoot":"","sources":["../src/gcsaDate.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,wBAAwB;AACxB,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAElE,2CAA2C;AAC3C,MAAM,MAAM,mBAAmB,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAErE,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAEjF"}
|
package/dist/gcsaDate.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function isGcsaDateString(value) {
|
|
2
|
+
return /^\d{4}-\d{2}-\d{2}$/.test(value);
|
|
3
|
+
}
|
|
4
|
+
export function isGcsaMonthString(value) {
|
|
5
|
+
return /^\d{4}-\d{2}$/.test(value);
|
|
6
|
+
}
|
|
7
|
+
export function formatGcsaDateParts(year, month, day) {
|
|
8
|
+
return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
|
|
9
|
+
}
|
|
10
|
+
export function formatGcsaMonthParts(year, month) {
|
|
11
|
+
return `${year}-${String(month).padStart(2, '0')}`;
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** ISO 日期时间字符串 YYYY-MM-DD HH:mm:ss */
|
|
2
|
+
export type GcsaDateTimeString = string;
|
|
3
|
+
export declare function gcsaSplitDateTime(value?: string | null): {
|
|
4
|
+
date: string;
|
|
5
|
+
time: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function gcsaJoinDateTime(date: string, time: string): GcsaDateTimeString;
|
|
8
|
+
//# sourceMappingURL=gcsaDateTimeValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaDateTimeValue.d.ts","sourceRoot":"","sources":["../src/gcsaDateTimeValue.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAExC,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAQvF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAI/E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function gcsaSplitDateTime(value) {
|
|
2
|
+
if (!value?.trim())
|
|
3
|
+
return { date: '', time: '00:00:00' };
|
|
4
|
+
const [date = '', time = '00:00:00'] = value.trim().split(/\s+/);
|
|
5
|
+
const [hour = '00', minute = '00', second = '00'] = time.split(':');
|
|
6
|
+
return {
|
|
7
|
+
date,
|
|
8
|
+
time: `${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:${second.padStart(2, '0').slice(0, 2)}`
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export function gcsaJoinDateTime(date, time) {
|
|
12
|
+
if (!date)
|
|
13
|
+
return '';
|
|
14
|
+
const [hour = '00', minute = '00', second = '00'] = (time || '00:00:00').split(':');
|
|
15
|
+
return `${date} ${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:${second.padStart(2, '0').slice(0, 2)}`;
|
|
16
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/** BCP 47,与 GCSA 主站语言一致 */
|
|
2
|
+
export type GcsaConsoleLocale = 'zh-CN' | 'zh-TW' | 'en-US';
|
|
3
|
+
export declare const GCSA_DEFAULT_LOCALE: GcsaConsoleLocale;
|
|
4
|
+
export type GcsaDatePickerLocaleStrings = {
|
|
5
|
+
placeholder: string;
|
|
6
|
+
placeholderDateTime: string;
|
|
7
|
+
selectTime: string;
|
|
8
|
+
now: string;
|
|
9
|
+
placeholderStart: string;
|
|
10
|
+
placeholderEnd: string;
|
|
11
|
+
placeholderMonth: string;
|
|
12
|
+
placeholderStartMonth: string;
|
|
13
|
+
placeholderEndMonth: string;
|
|
14
|
+
rangeSeparator: string;
|
|
15
|
+
openCalendar: string;
|
|
16
|
+
prevMonth: string;
|
|
17
|
+
nextMonth: string;
|
|
18
|
+
prevYear: string;
|
|
19
|
+
nextYear: string;
|
|
20
|
+
today: string;
|
|
21
|
+
};
|
|
22
|
+
export type GcsaConsoleLocaleMessages = {
|
|
23
|
+
close: string;
|
|
24
|
+
remove: string;
|
|
25
|
+
open: string;
|
|
26
|
+
menu: string;
|
|
27
|
+
hoverToView: string;
|
|
28
|
+
confirm: string;
|
|
29
|
+
cancel: string;
|
|
30
|
+
delete: string;
|
|
31
|
+
confirmAction: string;
|
|
32
|
+
validationFailed: string;
|
|
33
|
+
formValidationFailed: string;
|
|
34
|
+
datePicker: GcsaDatePickerLocaleStrings;
|
|
35
|
+
uploadSelectFile: string;
|
|
36
|
+
uploadRemoveFile: string;
|
|
37
|
+
uploadDragHint: string;
|
|
38
|
+
uploadUploading: string;
|
|
39
|
+
uploadFailed: string;
|
|
40
|
+
uploadRetry: string;
|
|
41
|
+
inputNumberDecrease: string;
|
|
42
|
+
inputNumberIncrease: string;
|
|
43
|
+
shellCloseNav: string;
|
|
44
|
+
shellOpenNav: string;
|
|
45
|
+
shellExpandSider: string;
|
|
46
|
+
shellCollapseSider: string;
|
|
47
|
+
chatPlaceholder: string;
|
|
48
|
+
chatSend: string;
|
|
49
|
+
chatSending: string;
|
|
50
|
+
chatEmpty: string;
|
|
51
|
+
chatCopy: string;
|
|
52
|
+
chatCopySuccess: string;
|
|
53
|
+
chatCopyError: string;
|
|
54
|
+
formSubmit: string;
|
|
55
|
+
formReset: string;
|
|
56
|
+
paginationLabel: string;
|
|
57
|
+
paginationPrev: string;
|
|
58
|
+
paginationNext: string;
|
|
59
|
+
paginationPageSize: string;
|
|
60
|
+
paginationPageSizeAria: string;
|
|
61
|
+
paginationJumper: string;
|
|
62
|
+
selectListHint: string;
|
|
63
|
+
selectPlaceholder: string;
|
|
64
|
+
searchPlaceholder: string;
|
|
65
|
+
noOptions: string;
|
|
66
|
+
emptyDefault: string;
|
|
67
|
+
loading: string;
|
|
68
|
+
retry: string;
|
|
69
|
+
dataTableEmpty: string;
|
|
70
|
+
dataTableLoading: string;
|
|
71
|
+
dataTableTotal: string;
|
|
72
|
+
dataTableSelected: string;
|
|
73
|
+
dataTableRange: string;
|
|
74
|
+
dataTableFilter: string;
|
|
75
|
+
dataTableSummary: string;
|
|
76
|
+
dataTableSelectAll: string;
|
|
77
|
+
dataTableSelectRow: string;
|
|
78
|
+
dataTableResizeColumn: string;
|
|
79
|
+
dataTableExpandRow: string;
|
|
80
|
+
dataTableCollapseRow: string;
|
|
81
|
+
dataTableLoadChildren: string;
|
|
82
|
+
dataTableRetryChildren: string;
|
|
83
|
+
dataTableTreeLoading: string;
|
|
84
|
+
dataTableTreeLoadError: string;
|
|
85
|
+
timePickerPlaceholder: string;
|
|
86
|
+
timePickerOpen: string;
|
|
87
|
+
timePickerClear: string;
|
|
88
|
+
timePickerSelect: string;
|
|
89
|
+
timeHour: string;
|
|
90
|
+
timeMinute: string;
|
|
91
|
+
timeSecond: string;
|
|
92
|
+
transferSourceTitle: string;
|
|
93
|
+
transferTargetTitle: string;
|
|
94
|
+
transferMoveRight: string;
|
|
95
|
+
transferMoveLeft: string;
|
|
96
|
+
imagePreview: string;
|
|
97
|
+
imagePreviewClose: string;
|
|
98
|
+
stepsLabel: string;
|
|
99
|
+
timelineLabel: string;
|
|
100
|
+
breadcrumbLabel: string;
|
|
101
|
+
consoleNavLabel: string;
|
|
102
|
+
};
|
|
103
|
+
export declare function normalizeGcsaLocale(locale?: string): GcsaConsoleLocale;
|
|
104
|
+
export declare function getGcsaLocaleMessages(locale: GcsaConsoleLocale): GcsaConsoleLocaleMessages;
|
|
105
|
+
export declare function getGcsaDatePickerMessages(locale: GcsaConsoleLocale): GcsaDatePickerLocaleStrings;
|
|
106
|
+
/** 周起始日:中文周一,英文周日 */
|
|
107
|
+
export declare function getGcsaStartOfWeek(locale: GcsaConsoleLocale): 0 | 1;
|
|
108
|
+
export declare function formatGcsaLocaleMessage(template: string, vars: Record<string, string | number>): string;
|
|
109
|
+
//# sourceMappingURL=gcsaLocale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaLocale.d.ts","sourceRoot":"","sources":["../src/gcsaLocale.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
export const GCSA_DEFAULT_LOCALE = 'zh-CN';
|
|
2
|
+
const LOCALE_MESSAGES = {
|
|
3
|
+
'zh-CN': {
|
|
4
|
+
close: '关闭',
|
|
5
|
+
remove: '移除',
|
|
6
|
+
open: '打开',
|
|
7
|
+
menu: '菜单',
|
|
8
|
+
hoverToView: '悬停查看',
|
|
9
|
+
confirm: '确认',
|
|
10
|
+
cancel: '取消',
|
|
11
|
+
delete: '删除',
|
|
12
|
+
confirmAction: '确认操作?',
|
|
13
|
+
validationFailed: '校验失败',
|
|
14
|
+
formValidationFailed: '表单校验失败',
|
|
15
|
+
datePicker: {
|
|
16
|
+
placeholder: '选择日期',
|
|
17
|
+
placeholderDateTime: '选择日期时间',
|
|
18
|
+
selectTime: '选择时间',
|
|
19
|
+
now: '此刻',
|
|
20
|
+
placeholderStart: '开始日期',
|
|
21
|
+
placeholderEnd: '结束日期',
|
|
22
|
+
placeholderMonth: '选择月份',
|
|
23
|
+
placeholderStartMonth: '开始月份',
|
|
24
|
+
placeholderEndMonth: '结束月份',
|
|
25
|
+
rangeSeparator: '至',
|
|
26
|
+
openCalendar: '打开日历',
|
|
27
|
+
prevMonth: '上一月',
|
|
28
|
+
nextMonth: '下一月',
|
|
29
|
+
prevYear: '上一年',
|
|
30
|
+
nextYear: '下一年',
|
|
31
|
+
today: '今天'
|
|
32
|
+
},
|
|
33
|
+
uploadSelectFile: '选择文件',
|
|
34
|
+
uploadRemoveFile: '移除文件',
|
|
35
|
+
uploadDragHint: '拖拽文件到此处,或点击选择',
|
|
36
|
+
uploadUploading: '上传中…',
|
|
37
|
+
uploadFailed: '上传失败',
|
|
38
|
+
uploadRetry: '重试',
|
|
39
|
+
inputNumberDecrease: '减少',
|
|
40
|
+
inputNumberIncrease: '增加',
|
|
41
|
+
shellCloseNav: '关闭导航',
|
|
42
|
+
shellOpenNav: '打开导航',
|
|
43
|
+
shellExpandSider: '展开侧栏',
|
|
44
|
+
shellCollapseSider: '收起侧栏',
|
|
45
|
+
chatPlaceholder: '输入消息…',
|
|
46
|
+
chatSend: '发送',
|
|
47
|
+
chatSending: '发送中…',
|
|
48
|
+
chatEmpty: '开始对话吧',
|
|
49
|
+
chatCopy: '复制',
|
|
50
|
+
chatCopySuccess: '已复制',
|
|
51
|
+
chatCopyError: '复制失败',
|
|
52
|
+
formSubmit: '保存',
|
|
53
|
+
formReset: '重置',
|
|
54
|
+
paginationLabel: '分页',
|
|
55
|
+
paginationPrev: '上一页',
|
|
56
|
+
paginationNext: '下一页',
|
|
57
|
+
paginationPageSize: '每页',
|
|
58
|
+
paginationPageSizeAria: '每页条数',
|
|
59
|
+
paginationJumper: '跳至',
|
|
60
|
+
selectListHint: '共 {count} 项,可滚动浏览',
|
|
61
|
+
selectPlaceholder: '请选择',
|
|
62
|
+
searchPlaceholder: '搜索',
|
|
63
|
+
noOptions: '暂无选项',
|
|
64
|
+
emptyDefault: '暂无数据',
|
|
65
|
+
loading: '加载中…',
|
|
66
|
+
retry: '重试',
|
|
67
|
+
dataTableEmpty: '暂无数据',
|
|
68
|
+
dataTableLoading: '加载中…',
|
|
69
|
+
dataTableTotal: '共 {count} 条',
|
|
70
|
+
dataTableSelected: '已选 {count}',
|
|
71
|
+
dataTableRange: '第 {start}-{end} 条,共 {total} 条',
|
|
72
|
+
dataTableFilter: '筛选',
|
|
73
|
+
dataTableSummary: '合计',
|
|
74
|
+
dataTableSelectAll: '选择当前页全部行',
|
|
75
|
+
dataTableSelectRow: '选择此行',
|
|
76
|
+
dataTableResizeColumn: '调整列宽',
|
|
77
|
+
dataTableExpandRow: '展开行',
|
|
78
|
+
dataTableCollapseRow: '收起行',
|
|
79
|
+
dataTableLoadChildren: '加载子节点',
|
|
80
|
+
dataTableRetryChildren: '重试加载子节点',
|
|
81
|
+
dataTableTreeLoading: '加载中…',
|
|
82
|
+
dataTableTreeLoadError: '加载失败,重试',
|
|
83
|
+
timePickerPlaceholder: '请选择时间',
|
|
84
|
+
timePickerOpen: '打开时间选择面板',
|
|
85
|
+
timePickerClear: '清空时间',
|
|
86
|
+
timePickerSelect: '选择时间',
|
|
87
|
+
timeHour: '小时',
|
|
88
|
+
timeMinute: '分钟',
|
|
89
|
+
timeSecond: '秒',
|
|
90
|
+
transferSourceTitle: '可选项',
|
|
91
|
+
transferTargetTitle: '已选项',
|
|
92
|
+
transferMoveRight: '移入已选',
|
|
93
|
+
transferMoveLeft: '移回可选',
|
|
94
|
+
imagePreview: '图片预览',
|
|
95
|
+
imagePreviewClose: '关闭预览',
|
|
96
|
+
stepsLabel: '步骤',
|
|
97
|
+
timelineLabel: '时间线',
|
|
98
|
+
breadcrumbLabel: '面包屑',
|
|
99
|
+
consoleNavLabel: '控制台导航'
|
|
100
|
+
},
|
|
101
|
+
'zh-TW': {
|
|
102
|
+
close: '關閉',
|
|
103
|
+
remove: '移除',
|
|
104
|
+
open: '打開',
|
|
105
|
+
menu: '選單',
|
|
106
|
+
hoverToView: '懸停查看',
|
|
107
|
+
confirm: '確認',
|
|
108
|
+
cancel: '取消',
|
|
109
|
+
delete: '刪除',
|
|
110
|
+
confirmAction: '確認操作?',
|
|
111
|
+
validationFailed: '校驗失敗',
|
|
112
|
+
formValidationFailed: '表單校驗失敗',
|
|
113
|
+
datePicker: {
|
|
114
|
+
placeholder: '選擇日期',
|
|
115
|
+
placeholderDateTime: '選擇日期時間',
|
|
116
|
+
selectTime: '選擇時間',
|
|
117
|
+
now: '此刻',
|
|
118
|
+
placeholderStart: '開始日期',
|
|
119
|
+
placeholderEnd: '結束日期',
|
|
120
|
+
placeholderMonth: '選擇月份',
|
|
121
|
+
placeholderStartMonth: '開始月份',
|
|
122
|
+
placeholderEndMonth: '結束月份',
|
|
123
|
+
rangeSeparator: '至',
|
|
124
|
+
openCalendar: '打開日曆',
|
|
125
|
+
prevMonth: '上一月',
|
|
126
|
+
nextMonth: '下一月',
|
|
127
|
+
prevYear: '上一年',
|
|
128
|
+
nextYear: '下一年',
|
|
129
|
+
today: '今天'
|
|
130
|
+
},
|
|
131
|
+
uploadSelectFile: '選擇檔案',
|
|
132
|
+
uploadRemoveFile: '移除檔案',
|
|
133
|
+
uploadDragHint: '拖曳檔案到此處,或點擊選擇',
|
|
134
|
+
uploadUploading: '上傳中…',
|
|
135
|
+
uploadFailed: '上傳失敗',
|
|
136
|
+
uploadRetry: '重試',
|
|
137
|
+
inputNumberDecrease: '減少',
|
|
138
|
+
inputNumberIncrease: '增加',
|
|
139
|
+
shellCloseNav: '關閉導覽',
|
|
140
|
+
shellOpenNav: '打開導覽',
|
|
141
|
+
shellExpandSider: '展開側欄',
|
|
142
|
+
shellCollapseSider: '收起側欄',
|
|
143
|
+
chatPlaceholder: '輸入訊息…',
|
|
144
|
+
chatSend: '傳送',
|
|
145
|
+
chatSending: '傳送中…',
|
|
146
|
+
chatEmpty: '開始對話吧',
|
|
147
|
+
chatCopy: '複製',
|
|
148
|
+
chatCopySuccess: '已複製',
|
|
149
|
+
chatCopyError: '複製失敗',
|
|
150
|
+
formSubmit: '儲存',
|
|
151
|
+
formReset: '重置',
|
|
152
|
+
paginationLabel: '分頁',
|
|
153
|
+
paginationPrev: '上一頁',
|
|
154
|
+
paginationNext: '下一頁',
|
|
155
|
+
paginationPageSize: '每頁',
|
|
156
|
+
paginationPageSizeAria: '每頁筆數',
|
|
157
|
+
paginationJumper: '跳至',
|
|
158
|
+
selectListHint: '共 {count} 項,可捲動瀏覽',
|
|
159
|
+
selectPlaceholder: '請選擇',
|
|
160
|
+
searchPlaceholder: '搜尋',
|
|
161
|
+
noOptions: '暫無選項',
|
|
162
|
+
emptyDefault: '暫無資料',
|
|
163
|
+
loading: '載入中…',
|
|
164
|
+
retry: '重試',
|
|
165
|
+
dataTableEmpty: '暫無資料',
|
|
166
|
+
dataTableLoading: '載入中…',
|
|
167
|
+
dataTableTotal: '共 {count} 條',
|
|
168
|
+
dataTableSelected: '已選 {count}',
|
|
169
|
+
dataTableRange: '第 {start}-{end} 條,共 {total} 條',
|
|
170
|
+
dataTableFilter: '篩選',
|
|
171
|
+
dataTableSummary: '合計',
|
|
172
|
+
dataTableSelectAll: '選擇目前頁全部列',
|
|
173
|
+
dataTableSelectRow: '選擇此列',
|
|
174
|
+
dataTableResizeColumn: '調整欄寬',
|
|
175
|
+
dataTableExpandRow: '展開列',
|
|
176
|
+
dataTableCollapseRow: '收起列',
|
|
177
|
+
dataTableLoadChildren: '載入子節點',
|
|
178
|
+
dataTableRetryChildren: '重試載入子節點',
|
|
179
|
+
dataTableTreeLoading: '載入中…',
|
|
180
|
+
dataTableTreeLoadError: '載入失敗,重試',
|
|
181
|
+
timePickerPlaceholder: '請選擇時間',
|
|
182
|
+
timePickerOpen: '打開時間選擇面板',
|
|
183
|
+
timePickerClear: '清空時間',
|
|
184
|
+
timePickerSelect: '選擇時間',
|
|
185
|
+
timeHour: '小時',
|
|
186
|
+
timeMinute: '分鐘',
|
|
187
|
+
timeSecond: '秒',
|
|
188
|
+
transferSourceTitle: '可選項',
|
|
189
|
+
transferTargetTitle: '已選項',
|
|
190
|
+
transferMoveRight: '移入已選',
|
|
191
|
+
transferMoveLeft: '移回可選',
|
|
192
|
+
imagePreview: '圖片預覽',
|
|
193
|
+
imagePreviewClose: '關閉預覽',
|
|
194
|
+
stepsLabel: '步驟',
|
|
195
|
+
timelineLabel: '時間線',
|
|
196
|
+
breadcrumbLabel: '麵包屑',
|
|
197
|
+
consoleNavLabel: '控制台導覽'
|
|
198
|
+
},
|
|
199
|
+
'en-US': {
|
|
200
|
+
close: 'Close',
|
|
201
|
+
remove: 'Remove',
|
|
202
|
+
open: 'Open',
|
|
203
|
+
menu: 'Menu',
|
|
204
|
+
hoverToView: 'Hover to view',
|
|
205
|
+
confirm: 'Confirm',
|
|
206
|
+
cancel: 'Cancel',
|
|
207
|
+
delete: 'Delete',
|
|
208
|
+
confirmAction: 'Confirm this action?',
|
|
209
|
+
validationFailed: 'Validation failed',
|
|
210
|
+
formValidationFailed: 'Form validation failed',
|
|
211
|
+
datePicker: {
|
|
212
|
+
placeholder: 'Select date',
|
|
213
|
+
placeholderDateTime: 'Select date and time',
|
|
214
|
+
selectTime: 'Select time',
|
|
215
|
+
now: 'Now',
|
|
216
|
+
placeholderStart: 'Start date',
|
|
217
|
+
placeholderEnd: 'End date',
|
|
218
|
+
placeholderMonth: 'Select month',
|
|
219
|
+
placeholderStartMonth: 'Start month',
|
|
220
|
+
placeholderEndMonth: 'End month',
|
|
221
|
+
rangeSeparator: 'to',
|
|
222
|
+
openCalendar: 'Open calendar',
|
|
223
|
+
prevMonth: 'Previous month',
|
|
224
|
+
nextMonth: 'Next month',
|
|
225
|
+
prevYear: 'Previous year',
|
|
226
|
+
nextYear: 'Next year',
|
|
227
|
+
today: 'Today'
|
|
228
|
+
},
|
|
229
|
+
uploadSelectFile: 'Choose file',
|
|
230
|
+
uploadRemoveFile: 'Remove file',
|
|
231
|
+
uploadDragHint: 'Drop files here, or click to browse',
|
|
232
|
+
uploadUploading: 'Uploading…',
|
|
233
|
+
uploadFailed: 'Upload failed',
|
|
234
|
+
uploadRetry: 'Retry',
|
|
235
|
+
inputNumberDecrease: 'Decrease',
|
|
236
|
+
inputNumberIncrease: 'Increase',
|
|
237
|
+
shellCloseNav: 'Close navigation',
|
|
238
|
+
shellOpenNav: 'Open navigation',
|
|
239
|
+
shellExpandSider: 'Expand sidebar',
|
|
240
|
+
shellCollapseSider: 'Collapse sidebar',
|
|
241
|
+
chatPlaceholder: 'Type a message…',
|
|
242
|
+
chatSend: 'Send',
|
|
243
|
+
chatSending: 'Sending…',
|
|
244
|
+
chatEmpty: 'Start a conversation',
|
|
245
|
+
chatCopy: 'Copy',
|
|
246
|
+
chatCopySuccess: 'Copied',
|
|
247
|
+
chatCopyError: 'Copy failed',
|
|
248
|
+
formSubmit: 'Save',
|
|
249
|
+
formReset: 'Reset',
|
|
250
|
+
paginationLabel: 'Pagination',
|
|
251
|
+
paginationPrev: 'Previous',
|
|
252
|
+
paginationNext: 'Next',
|
|
253
|
+
paginationPageSize: 'Per page',
|
|
254
|
+
paginationPageSizeAria: 'Items per page',
|
|
255
|
+
paginationJumper: 'Go to',
|
|
256
|
+
selectListHint: '{count} items — scroll to browse',
|
|
257
|
+
selectPlaceholder: 'Please select',
|
|
258
|
+
searchPlaceholder: 'Search',
|
|
259
|
+
noOptions: 'No options',
|
|
260
|
+
emptyDefault: 'No data',
|
|
261
|
+
loading: 'Loading…',
|
|
262
|
+
retry: 'Retry',
|
|
263
|
+
dataTableEmpty: 'No data',
|
|
264
|
+
dataTableLoading: 'Loading…',
|
|
265
|
+
dataTableTotal: '{count} items',
|
|
266
|
+
dataTableSelected: '{count} selected',
|
|
267
|
+
dataTableRange: '{start}-{end} of {total}',
|
|
268
|
+
dataTableFilter: 'Filter',
|
|
269
|
+
dataTableSummary: 'Total',
|
|
270
|
+
dataTableSelectAll: 'Select all rows on this page',
|
|
271
|
+
dataTableSelectRow: 'Select this row',
|
|
272
|
+
dataTableResizeColumn: 'Resize column',
|
|
273
|
+
dataTableExpandRow: 'Expand row',
|
|
274
|
+
dataTableCollapseRow: 'Collapse row',
|
|
275
|
+
dataTableLoadChildren: 'Loading children',
|
|
276
|
+
dataTableRetryChildren: 'Retry loading children',
|
|
277
|
+
dataTableTreeLoading: 'Loading…',
|
|
278
|
+
dataTableTreeLoadError: 'Failed to load — retry',
|
|
279
|
+
timePickerPlaceholder: 'Select time',
|
|
280
|
+
timePickerOpen: 'Open time picker',
|
|
281
|
+
timePickerClear: 'Clear time',
|
|
282
|
+
timePickerSelect: 'Select time',
|
|
283
|
+
timeHour: 'Hour',
|
|
284
|
+
timeMinute: 'Minute',
|
|
285
|
+
timeSecond: 'Second',
|
|
286
|
+
transferSourceTitle: 'Available',
|
|
287
|
+
transferTargetTitle: 'Selected',
|
|
288
|
+
transferMoveRight: 'Move to selected',
|
|
289
|
+
transferMoveLeft: 'Move to available',
|
|
290
|
+
imagePreview: 'Image preview',
|
|
291
|
+
imagePreviewClose: 'Close preview',
|
|
292
|
+
stepsLabel: 'Steps',
|
|
293
|
+
timelineLabel: 'Timeline',
|
|
294
|
+
breadcrumbLabel: 'Breadcrumb',
|
|
295
|
+
consoleNavLabel: 'Console navigation'
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
export function normalizeGcsaLocale(locale) {
|
|
299
|
+
if (locale === 'zh-CN' || locale === 'zh-TW' || locale === 'en-US')
|
|
300
|
+
return locale;
|
|
301
|
+
if (locale?.startsWith('zh')) {
|
|
302
|
+
return locale.includes('TW') || locale.includes('Hant') ? 'zh-TW' : 'zh-CN';
|
|
303
|
+
}
|
|
304
|
+
if (locale?.startsWith('en'))
|
|
305
|
+
return 'en-US';
|
|
306
|
+
return GCSA_DEFAULT_LOCALE;
|
|
307
|
+
}
|
|
308
|
+
export function getGcsaLocaleMessages(locale) {
|
|
309
|
+
return LOCALE_MESSAGES[locale] ?? LOCALE_MESSAGES[GCSA_DEFAULT_LOCALE];
|
|
310
|
+
}
|
|
311
|
+
export function getGcsaDatePickerMessages(locale) {
|
|
312
|
+
return getGcsaLocaleMessages(locale).datePicker;
|
|
313
|
+
}
|
|
314
|
+
/** 周起始日:中文周一,英文周日 */
|
|
315
|
+
export function getGcsaStartOfWeek(locale) {
|
|
316
|
+
return locale === 'en-US' ? 0 : 1;
|
|
317
|
+
}
|
|
318
|
+
export function formatGcsaLocaleMessage(template, vars) {
|
|
319
|
+
return template.replace(/\{(\w+)\}/g, (_, key) => String(vars[key] ?? ''));
|
|
320
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaMarkdown.d.ts","sourceRoot":"","sources":["../src/gcsaMarkdown.ts"],"names":[],"mappings":"AAWA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO1D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import DOMPurify from 'dompurify';
|
|
2
|
+
import { marked } from 'marked';
|
|
3
|
+
let configured = false;
|
|
4
|
+
function ensureMarked() {
|
|
5
|
+
if (configured)
|
|
6
|
+
return;
|
|
7
|
+
marked.setOptions({ breaks: true, gfm: true });
|
|
8
|
+
configured = true;
|
|
9
|
+
}
|
|
10
|
+
export function renderGcsaMarkdown(content) {
|
|
11
|
+
const raw = content || '';
|
|
12
|
+
if (!raw.trim())
|
|
13
|
+
return '';
|
|
14
|
+
ensureMarked();
|
|
15
|
+
const parsed = marked.parse(raw, { async: false });
|
|
16
|
+
if (typeof window === 'undefined')
|
|
17
|
+
return parsed;
|
|
18
|
+
return DOMPurify.sanitize(parsed, { USE_PROFILES: { html: true } });
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type GcsaMenuIconKey = 'dashboard' | 'alert' | 'assets' | 'settings' | 'users' | 'chat';
|
|
2
|
+
export type GcsaMenuItem = {
|
|
3
|
+
key: string;
|
|
4
|
+
label: string;
|
|
5
|
+
iconKey?: GcsaMenuIconKey;
|
|
6
|
+
/** 自定义图标节点(React/Vue 插槽);侧栏可暂用 @ant-design/icons */
|
|
7
|
+
icon?: unknown;
|
|
8
|
+
href?: string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
type?: 'item' | 'group' | 'divider';
|
|
11
|
+
children?: GcsaMenuItem[];
|
|
12
|
+
};
|
|
13
|
+
export declare function navItemsToMenuItems(items: Array<{
|
|
14
|
+
key: string;
|
|
15
|
+
label: string;
|
|
16
|
+
iconKey?: GcsaMenuIconKey;
|
|
17
|
+
href?: string;
|
|
18
|
+
}>): GcsaMenuItem[];
|
|
19
|
+
export type GcsaMenuMode = 'vertical' | 'horizontal' | 'inline';
|
|
20
|
+
export declare function collectGcsaMenuBranchKeys(items: GcsaMenuItem[]): string[];
|
|
21
|
+
//# sourceMappingURL=gcsaMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcsaMenu.d.ts","sourceRoot":"","sources":["../src/gcsaMenu.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/F,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,GACD,YAAY,EAAE,CAOhB;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEhE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAUzE"}
|