@iyulab/flex-table 0.35.0 → 0.36.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/CHANGELOG.md +24 -0
- package/README.md +40 -0
- package/dist/{flex-table-Y4GyDV0Y.js → flex-table-D5FjaSJV.js} +816 -127
- package/dist/flex-table.js +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/locale.d.ts +32 -0
- package/dist/react.js +1 -1
- package/package.json +1 -1
|
@@ -978,8 +978,697 @@ function y(e) {
|
|
|
978
978
|
return String(e);
|
|
979
979
|
}
|
|
980
980
|
//#endregion
|
|
981
|
+
//#region node_modules/@iyulab/components/dist/utilities/Locale.js
|
|
982
|
+
var b = new Map(Object.entries(/* #__PURE__ */ Object.assign({
|
|
983
|
+
"../assets/locales/ar.json": {
|
|
984
|
+
valueMissing: "هذا الحقل مطلوب",
|
|
985
|
+
badInput: "يرجى إدخال قيمة صالحة",
|
|
986
|
+
typeMismatch: "يرجى إدخال قيمة بالتنسيق الصحيح",
|
|
987
|
+
patternMismatch: "يرجى اتباع التنسيق المطلوب",
|
|
988
|
+
rangeUnderflow: "يجب أن تكون القيمة {min} على الأقل",
|
|
989
|
+
rangeOverflow: "يجب ألا تتجاوز القيمة {max}",
|
|
990
|
+
stepMismatch: "يجب أن تكون القيمة من مضاعفات {step}",
|
|
991
|
+
tooShort: "يجب أن تكون {min} على الأقل",
|
|
992
|
+
tooLong: "يجب ألا تتجاوز {max}",
|
|
993
|
+
increment: "زيادة القيمة",
|
|
994
|
+
decrement: "إنقاص القيمة",
|
|
995
|
+
clear: "مسح القيمة",
|
|
996
|
+
today: "اليوم",
|
|
997
|
+
time: "الوقت",
|
|
998
|
+
showPassword: "إظهار كلمة المرور",
|
|
999
|
+
hidePassword: "إخفاء كلمة المرور",
|
|
1000
|
+
previousSlide: "الشريحة السابقة",
|
|
1001
|
+
nextSlide: "الشريحة التالية",
|
|
1002
|
+
goToSlide: "الانتقال إلى الشريحة {n}",
|
|
1003
|
+
chooseDate: "اختر التاريخ",
|
|
1004
|
+
previousMonth: "الشهر السابق",
|
|
1005
|
+
nextMonth: "الشهر التالي",
|
|
1006
|
+
close: "إغلاق",
|
|
1007
|
+
copy: "نسخ",
|
|
1008
|
+
copied: "تم النسخ",
|
|
1009
|
+
chooseFile: "اختر ملفًا",
|
|
1010
|
+
noFileChosen: "لم يتم اختيار أي ملف",
|
|
1011
|
+
filesSelected: "تم اختيار {count} ملفات",
|
|
1012
|
+
resizePanels: "تغيير حجم اللوحات",
|
|
1013
|
+
search: "بحث",
|
|
1014
|
+
alertError: "خطأ",
|
|
1015
|
+
alertWarning: "تحذير",
|
|
1016
|
+
alertSuccess: "نجاح",
|
|
1017
|
+
alertInfo: "معلومات",
|
|
1018
|
+
alertNotice: "إشعار",
|
|
1019
|
+
alertMessage: "رسالة",
|
|
1020
|
+
remove: "إزالة",
|
|
1021
|
+
closeTab: "إغلاق علامة التبويب"
|
|
1022
|
+
},
|
|
1023
|
+
"../assets/locales/de.json": {
|
|
1024
|
+
valueMissing: "Dieses Feld ist erforderlich",
|
|
1025
|
+
badInput: "Bitte geben Sie einen gültigen Wert ein",
|
|
1026
|
+
typeMismatch: "Bitte geben Sie einen gültigen Wert ein",
|
|
1027
|
+
patternMismatch: "Bitte halten Sie sich an das angeforderte Format",
|
|
1028
|
+
rangeUnderflow: "Der Wert muss mindestens {min} betragen",
|
|
1029
|
+
rangeOverflow: "Der Wert darf höchstens {max} betragen",
|
|
1030
|
+
stepMismatch: "Der Wert muss ein Vielfaches von {step} sein",
|
|
1031
|
+
tooShort: "Muss mindestens {min} betragen",
|
|
1032
|
+
tooLong: "Darf höchstens {max} betragen",
|
|
1033
|
+
increment: "Wert erhöhen",
|
|
1034
|
+
decrement: "Wert verringern",
|
|
1035
|
+
clear: "Wert löschen",
|
|
1036
|
+
today: "Heute",
|
|
1037
|
+
time: "Uhrzeit",
|
|
1038
|
+
showPassword: "Passwort anzeigen",
|
|
1039
|
+
hidePassword: "Passwort verbergen",
|
|
1040
|
+
previousSlide: "Vorherige Folie",
|
|
1041
|
+
nextSlide: "Nächste Folie",
|
|
1042
|
+
goToSlide: "Zu Folie {n} wechseln",
|
|
1043
|
+
chooseDate: "Datum auswählen",
|
|
1044
|
+
previousMonth: "Vorheriger Monat",
|
|
1045
|
+
nextMonth: "Nächster Monat",
|
|
1046
|
+
close: "Schließen",
|
|
1047
|
+
copy: "Kopieren",
|
|
1048
|
+
copied: "Kopiert",
|
|
1049
|
+
chooseFile: "Datei auswählen",
|
|
1050
|
+
noFileChosen: "Keine Datei ausgewählt",
|
|
1051
|
+
filesSelected: "{count} Dateien ausgewählt",
|
|
1052
|
+
resizePanels: "Bereichsgröße ändern",
|
|
1053
|
+
search: "Suchen",
|
|
1054
|
+
alertError: "Fehler",
|
|
1055
|
+
alertWarning: "Warnung",
|
|
1056
|
+
alertSuccess: "Erfolg",
|
|
1057
|
+
alertInfo: "Information",
|
|
1058
|
+
alertNotice: "Hinweis",
|
|
1059
|
+
alertMessage: "Nachricht",
|
|
1060
|
+
remove: "Entfernen",
|
|
1061
|
+
closeTab: "Tab schließen"
|
|
1062
|
+
},
|
|
1063
|
+
"../assets/locales/en.json": {
|
|
1064
|
+
valueMissing: "This field is required",
|
|
1065
|
+
badInput: "Please enter a valid value",
|
|
1066
|
+
typeMismatch: "Please enter a valid value",
|
|
1067
|
+
patternMismatch: "Please match the requested format",
|
|
1068
|
+
rangeUnderflow: "Value must be at least {min}",
|
|
1069
|
+
rangeOverflow: "Value must be at most {max}",
|
|
1070
|
+
stepMismatch: "Value must be a multiple of {step}",
|
|
1071
|
+
tooShort: "Must be at least {min}",
|
|
1072
|
+
tooLong: "Must be at most {max}",
|
|
1073
|
+
increment: "Increase value",
|
|
1074
|
+
decrement: "Decrease value",
|
|
1075
|
+
clear: "Clear value",
|
|
1076
|
+
today: "Today",
|
|
1077
|
+
time: "Time",
|
|
1078
|
+
showPassword: "Show password",
|
|
1079
|
+
hidePassword: "Hide password",
|
|
1080
|
+
previousSlide: "Previous slide",
|
|
1081
|
+
nextSlide: "Next slide",
|
|
1082
|
+
goToSlide: "Go to slide {n}",
|
|
1083
|
+
chooseDate: "Choose date",
|
|
1084
|
+
previousMonth: "Previous month",
|
|
1085
|
+
nextMonth: "Next month",
|
|
1086
|
+
close: "Close",
|
|
1087
|
+
copy: "Copy",
|
|
1088
|
+
copied: "Copied",
|
|
1089
|
+
chooseFile: "Choose file",
|
|
1090
|
+
noFileChosen: "No file chosen",
|
|
1091
|
+
filesSelected: "{count} files selected",
|
|
1092
|
+
resizePanels: "Resize panels",
|
|
1093
|
+
search: "Search",
|
|
1094
|
+
alertError: "Error",
|
|
1095
|
+
alertWarning: "Warning",
|
|
1096
|
+
alertSuccess: "Success",
|
|
1097
|
+
alertInfo: "Information",
|
|
1098
|
+
alertNotice: "Notice",
|
|
1099
|
+
alertMessage: "Message",
|
|
1100
|
+
remove: "Remove",
|
|
1101
|
+
closeTab: "Close tab"
|
|
1102
|
+
},
|
|
1103
|
+
"../assets/locales/es.json": {
|
|
1104
|
+
valueMissing: "Este campo es obligatorio",
|
|
1105
|
+
badInput: "Introduzca un valor válido",
|
|
1106
|
+
typeMismatch: "Introduzca un valor con el formato correcto",
|
|
1107
|
+
patternMismatch: "Ajuste el valor al formato solicitado",
|
|
1108
|
+
rangeUnderflow: "El valor debe ser como mínimo {min}",
|
|
1109
|
+
rangeOverflow: "El valor debe ser como máximo {max}",
|
|
1110
|
+
stepMismatch: "El valor debe ser múltiplo de {step}",
|
|
1111
|
+
tooShort: "Debe ser como mínimo {min}",
|
|
1112
|
+
tooLong: "Debe ser como máximo {max}",
|
|
1113
|
+
increment: "Aumentar valor",
|
|
1114
|
+
decrement: "Disminuir valor",
|
|
1115
|
+
clear: "Borrar valor",
|
|
1116
|
+
today: "Hoy",
|
|
1117
|
+
time: "Hora",
|
|
1118
|
+
showPassword: "Mostrar contraseña",
|
|
1119
|
+
hidePassword: "Ocultar contraseña",
|
|
1120
|
+
previousSlide: "Diapositiva anterior",
|
|
1121
|
+
nextSlide: "Siguiente diapositiva",
|
|
1122
|
+
goToSlide: "Ir a la diapositiva {n}",
|
|
1123
|
+
chooseDate: "Elegir fecha",
|
|
1124
|
+
previousMonth: "Mes anterior",
|
|
1125
|
+
nextMonth: "Mes siguiente",
|
|
1126
|
+
close: "Cerrar",
|
|
1127
|
+
copy: "Copiar",
|
|
1128
|
+
copied: "Copiado",
|
|
1129
|
+
chooseFile: "Elegir archivo",
|
|
1130
|
+
noFileChosen: "Ningún archivo elegido",
|
|
1131
|
+
filesSelected: "{count} archivos seleccionados",
|
|
1132
|
+
resizePanels: "Cambiar el tamaño de los paneles",
|
|
1133
|
+
search: "Buscar",
|
|
1134
|
+
alertError: "Error",
|
|
1135
|
+
alertWarning: "Advertencia",
|
|
1136
|
+
alertSuccess: "Éxito",
|
|
1137
|
+
alertInfo: "Información",
|
|
1138
|
+
alertNotice: "Aviso",
|
|
1139
|
+
alertMessage: "Mensaje",
|
|
1140
|
+
remove: "Quitar",
|
|
1141
|
+
closeTab: "Cerrar pestaña"
|
|
1142
|
+
},
|
|
1143
|
+
"../assets/locales/fr.json": {
|
|
1144
|
+
valueMissing: "Ce champ est obligatoire",
|
|
1145
|
+
badInput: "Veuillez saisir une valeur valide",
|
|
1146
|
+
typeMismatch: "Veuillez saisir une valeur au format correct",
|
|
1147
|
+
patternMismatch: "Veuillez respecter le format demandé",
|
|
1148
|
+
rangeUnderflow: "La valeur doit être supérieure ou égale à {min}",
|
|
1149
|
+
rangeOverflow: "La valeur doit être inférieure ou égale à {max}",
|
|
1150
|
+
stepMismatch: "La valeur doit être un multiple de {step}",
|
|
1151
|
+
tooShort: "Doit être au moins {min}",
|
|
1152
|
+
tooLong: "Doit être au plus {max}",
|
|
1153
|
+
increment: "Augmenter la valeur",
|
|
1154
|
+
decrement: "Diminuer la valeur",
|
|
1155
|
+
clear: "Effacer la valeur",
|
|
1156
|
+
today: "Aujourd’hui",
|
|
1157
|
+
time: "Heure",
|
|
1158
|
+
showPassword: "Afficher le mot de passe",
|
|
1159
|
+
hidePassword: "Masquer le mot de passe",
|
|
1160
|
+
previousSlide: "Diapositive précédente",
|
|
1161
|
+
nextSlide: "Diapositive suivante",
|
|
1162
|
+
goToSlide: "Aller à la diapositive {n}",
|
|
1163
|
+
chooseDate: "Choisir une date",
|
|
1164
|
+
previousMonth: "Mois précédent",
|
|
1165
|
+
nextMonth: "Mois suivant",
|
|
1166
|
+
close: "Fermer",
|
|
1167
|
+
copy: "Copier",
|
|
1168
|
+
copied: "Copié",
|
|
1169
|
+
chooseFile: "Choisir un fichier",
|
|
1170
|
+
noFileChosen: "Aucun fichier choisi",
|
|
1171
|
+
filesSelected: "{count} fichiers sélectionnés",
|
|
1172
|
+
resizePanels: "Redimensionner les panneaux",
|
|
1173
|
+
search: "Rechercher",
|
|
1174
|
+
alertError: "Erreur",
|
|
1175
|
+
alertWarning: "Avertissement",
|
|
1176
|
+
alertSuccess: "Succès",
|
|
1177
|
+
alertInfo: "Information",
|
|
1178
|
+
alertNotice: "Avis",
|
|
1179
|
+
alertMessage: "Message",
|
|
1180
|
+
remove: "Supprimer",
|
|
1181
|
+
closeTab: "Fermer l'onglet"
|
|
1182
|
+
},
|
|
1183
|
+
"../assets/locales/id.json": {
|
|
1184
|
+
valueMissing: "Kolom ini wajib diisi",
|
|
1185
|
+
badInput: "Masukkan nilai yang valid",
|
|
1186
|
+
typeMismatch: "Masukkan nilai dengan format yang benar",
|
|
1187
|
+
patternMismatch: "Sesuaikan dengan format yang diminta",
|
|
1188
|
+
rangeUnderflow: "Nilai harus minimal {min}",
|
|
1189
|
+
rangeOverflow: "Nilai harus maksimal {max}",
|
|
1190
|
+
stepMismatch: "Nilai harus kelipatan dari {step}",
|
|
1191
|
+
tooShort: "Harus minimal {min}",
|
|
1192
|
+
tooLong: "Harus maksimal {max}",
|
|
1193
|
+
increment: "Tambah nilai",
|
|
1194
|
+
decrement: "Kurangi nilai",
|
|
1195
|
+
clear: "Hapus nilai",
|
|
1196
|
+
today: "Hari ini",
|
|
1197
|
+
time: "Waktu",
|
|
1198
|
+
showPassword: "Tampilkan kata sandi",
|
|
1199
|
+
hidePassword: "Sembunyikan kata sandi",
|
|
1200
|
+
previousSlide: "Slide sebelumnya",
|
|
1201
|
+
nextSlide: "Slide berikutnya",
|
|
1202
|
+
goToSlide: "Buka slide {n}",
|
|
1203
|
+
chooseDate: "Pilih tanggal",
|
|
1204
|
+
previousMonth: "Bulan sebelumnya",
|
|
1205
|
+
nextMonth: "Bulan berikutnya",
|
|
1206
|
+
close: "Tutup",
|
|
1207
|
+
copy: "Salin",
|
|
1208
|
+
copied: "Disalin",
|
|
1209
|
+
chooseFile: "Pilih berkas",
|
|
1210
|
+
noFileChosen: "Tidak ada berkas dipilih",
|
|
1211
|
+
filesSelected: "{count} berkas dipilih",
|
|
1212
|
+
resizePanels: "Ubah ukuran panel",
|
|
1213
|
+
search: "Cari",
|
|
1214
|
+
alertError: "Kesalahan",
|
|
1215
|
+
alertWarning: "Peringatan",
|
|
1216
|
+
alertSuccess: "Berhasil",
|
|
1217
|
+
alertInfo: "Informasi",
|
|
1218
|
+
alertNotice: "Pemberitahuan",
|
|
1219
|
+
alertMessage: "Pesan",
|
|
1220
|
+
remove: "Hapus",
|
|
1221
|
+
closeTab: "Tutup tab"
|
|
1222
|
+
},
|
|
1223
|
+
"../assets/locales/ja.json": {
|
|
1224
|
+
valueMissing: "この項目は必須です",
|
|
1225
|
+
badInput: "有効な値を入力してください",
|
|
1226
|
+
typeMismatch: "正しい形式の値を入力してください",
|
|
1227
|
+
patternMismatch: "指定された形式で入力してください",
|
|
1228
|
+
rangeUnderflow: "値は{min}以上である必要があります",
|
|
1229
|
+
rangeOverflow: "値は{max}以下である必要があります",
|
|
1230
|
+
stepMismatch: "値は{step}の倍数である必要があります",
|
|
1231
|
+
tooShort: "{min}以上である必要があります",
|
|
1232
|
+
tooLong: "{max}以下である必要があります",
|
|
1233
|
+
increment: "値を増やす",
|
|
1234
|
+
decrement: "値を減らす",
|
|
1235
|
+
clear: "値をクリア",
|
|
1236
|
+
today: "今日",
|
|
1237
|
+
time: "時刻",
|
|
1238
|
+
showPassword: "パスワードを表示",
|
|
1239
|
+
hidePassword: "パスワードを隠す",
|
|
1240
|
+
previousSlide: "前のスライド",
|
|
1241
|
+
nextSlide: "次のスライド",
|
|
1242
|
+
goToSlide: "スライド{n}に移動",
|
|
1243
|
+
chooseDate: "日付を選択",
|
|
1244
|
+
previousMonth: "前月",
|
|
1245
|
+
nextMonth: "翌月",
|
|
1246
|
+
close: "閉じる",
|
|
1247
|
+
copy: "コピー",
|
|
1248
|
+
copied: "コピーしました",
|
|
1249
|
+
chooseFile: "ファイルを選択",
|
|
1250
|
+
noFileChosen: "ファイルが選択されていません",
|
|
1251
|
+
filesSelected: "{count}個のファイルを選択しました",
|
|
1252
|
+
resizePanels: "パネルのサイズ変更",
|
|
1253
|
+
search: "検索",
|
|
1254
|
+
alertError: "エラー",
|
|
1255
|
+
alertWarning: "警告",
|
|
1256
|
+
alertSuccess: "完了",
|
|
1257
|
+
alertInfo: "お知らせ",
|
|
1258
|
+
alertNotice: "通知",
|
|
1259
|
+
alertMessage: "メッセージ",
|
|
1260
|
+
remove: "削除",
|
|
1261
|
+
closeTab: "タブを閉じる"
|
|
1262
|
+
},
|
|
1263
|
+
"../assets/locales/ko.json": {
|
|
1264
|
+
valueMissing: "필수 항목입니다",
|
|
1265
|
+
badInput: "올바른 값을 입력하세요",
|
|
1266
|
+
typeMismatch: "올바른 형식의 값을 입력하세요",
|
|
1267
|
+
patternMismatch: "요청된 형식에 맞게 입력하세요",
|
|
1268
|
+
rangeUnderflow: "값은 {min} 이상이어야 합니다",
|
|
1269
|
+
rangeOverflow: "값은 {max} 이하여야 합니다",
|
|
1270
|
+
stepMismatch: "값은 {step}의 배수여야 합니다",
|
|
1271
|
+
tooShort: "최소 {min} 이상이어야 합니다",
|
|
1272
|
+
tooLong: "최대 {max} 이하여야 합니다",
|
|
1273
|
+
increment: "값 증가",
|
|
1274
|
+
decrement: "값 감소",
|
|
1275
|
+
clear: "값 지우기",
|
|
1276
|
+
today: "오늘",
|
|
1277
|
+
time: "시간",
|
|
1278
|
+
showPassword: "비밀번호 표시",
|
|
1279
|
+
hidePassword: "비밀번호 숨기기",
|
|
1280
|
+
previousSlide: "이전 슬라이드",
|
|
1281
|
+
nextSlide: "다음 슬라이드",
|
|
1282
|
+
goToSlide: "{n}번 슬라이드로 이동",
|
|
1283
|
+
chooseDate: "날짜 선택",
|
|
1284
|
+
previousMonth: "이전 달",
|
|
1285
|
+
nextMonth: "다음 달",
|
|
1286
|
+
close: "닫기",
|
|
1287
|
+
copy: "복사",
|
|
1288
|
+
copied: "복사됨",
|
|
1289
|
+
chooseFile: "파일 선택",
|
|
1290
|
+
noFileChosen: "선택된 파일 없음",
|
|
1291
|
+
filesSelected: "{count}개 파일 선택됨",
|
|
1292
|
+
resizePanels: "패널 크기 조절",
|
|
1293
|
+
search: "검색",
|
|
1294
|
+
alertError: "오류",
|
|
1295
|
+
alertWarning: "경고",
|
|
1296
|
+
alertSuccess: "완료",
|
|
1297
|
+
alertInfo: "안내",
|
|
1298
|
+
alertNotice: "알림",
|
|
1299
|
+
alertMessage: "메시지",
|
|
1300
|
+
remove: "제거",
|
|
1301
|
+
closeTab: "탭 닫기"
|
|
1302
|
+
},
|
|
1303
|
+
"../assets/locales/pt-BR.json": {
|
|
1304
|
+
valueMissing: "Este campo é obrigatório",
|
|
1305
|
+
badInput: "Insira um valor válido",
|
|
1306
|
+
typeMismatch: "Insira um valor no formato correto",
|
|
1307
|
+
patternMismatch: "Siga o formato solicitado",
|
|
1308
|
+
rangeUnderflow: "O valor deve ser no mínimo {min}",
|
|
1309
|
+
rangeOverflow: "O valor deve ser no máximo {max}",
|
|
1310
|
+
stepMismatch: "O valor deve ser um múltiplo de {step}",
|
|
1311
|
+
tooShort: "Deve ser no mínimo {min}",
|
|
1312
|
+
tooLong: "Deve ser no máximo {max}",
|
|
1313
|
+
increment: "Aumentar valor",
|
|
1314
|
+
decrement: "Diminuir valor",
|
|
1315
|
+
clear: "Limpar valor",
|
|
1316
|
+
today: "Hoje",
|
|
1317
|
+
time: "Hora",
|
|
1318
|
+
showPassword: "Mostrar senha",
|
|
1319
|
+
hidePassword: "Ocultar senha",
|
|
1320
|
+
previousSlide: "Slide anterior",
|
|
1321
|
+
nextSlide: "Próximo slide",
|
|
1322
|
+
goToSlide: "Ir para o slide {n}",
|
|
1323
|
+
chooseDate: "Escolher data",
|
|
1324
|
+
previousMonth: "Mês anterior",
|
|
1325
|
+
nextMonth: "Próximo mês",
|
|
1326
|
+
close: "Fechar",
|
|
1327
|
+
copy: "Copiar",
|
|
1328
|
+
copied: "Copiado",
|
|
1329
|
+
chooseFile: "Escolher arquivo",
|
|
1330
|
+
noFileChosen: "Nenhum arquivo escolhido",
|
|
1331
|
+
filesSelected: "{count} arquivos selecionados",
|
|
1332
|
+
resizePanels: "Redimensionar painéis",
|
|
1333
|
+
search: "Pesquisar",
|
|
1334
|
+
alertError: "Erro",
|
|
1335
|
+
alertWarning: "Aviso",
|
|
1336
|
+
alertSuccess: "Sucesso",
|
|
1337
|
+
alertInfo: "Informação",
|
|
1338
|
+
alertNotice: "Nota",
|
|
1339
|
+
alertMessage: "Mensagem",
|
|
1340
|
+
remove: "Remover",
|
|
1341
|
+
closeTab: "Fechar aba"
|
|
1342
|
+
},
|
|
1343
|
+
"../assets/locales/ru.json": {
|
|
1344
|
+
valueMissing: "Это поле обязательно для заполнения",
|
|
1345
|
+
badInput: "Введите допустимое значение",
|
|
1346
|
+
typeMismatch: "Введите значение в правильном формате",
|
|
1347
|
+
patternMismatch: "Введите значение в требуемом формате",
|
|
1348
|
+
rangeUnderflow: "Значение должно быть не менее {min}",
|
|
1349
|
+
rangeOverflow: "Значение должно быть не более {max}",
|
|
1350
|
+
stepMismatch: "Значение должно быть кратно {step}",
|
|
1351
|
+
tooShort: "Должно быть не менее {min}",
|
|
1352
|
+
tooLong: "Должно быть не более {max}",
|
|
1353
|
+
increment: "Увеличить значение",
|
|
1354
|
+
decrement: "Уменьшить значение",
|
|
1355
|
+
clear: "Очистить значение",
|
|
1356
|
+
today: "Сегодня",
|
|
1357
|
+
time: "Время",
|
|
1358
|
+
showPassword: "Показать пароль",
|
|
1359
|
+
hidePassword: "Скрыть пароль",
|
|
1360
|
+
previousSlide: "Предыдущий слайд",
|
|
1361
|
+
nextSlide: "Следующий слайд",
|
|
1362
|
+
goToSlide: "Перейти к слайду {n}",
|
|
1363
|
+
chooseDate: "Выбрать дату",
|
|
1364
|
+
previousMonth: "Предыдущий месяц",
|
|
1365
|
+
nextMonth: "Следующий месяц",
|
|
1366
|
+
close: "Закрыть",
|
|
1367
|
+
copy: "Копировать",
|
|
1368
|
+
copied: "Скопировано",
|
|
1369
|
+
chooseFile: "Выбрать файл",
|
|
1370
|
+
noFileChosen: "Файл не выбран",
|
|
1371
|
+
filesSelected: "Выбрано файлов: {count}",
|
|
1372
|
+
resizePanels: "Изменить размер панелей",
|
|
1373
|
+
search: "Поиск",
|
|
1374
|
+
alertError: "Ошибка",
|
|
1375
|
+
alertWarning: "Предупреждение",
|
|
1376
|
+
alertSuccess: "Успешно",
|
|
1377
|
+
alertInfo: "Информация",
|
|
1378
|
+
alertNotice: "Уведомление",
|
|
1379
|
+
alertMessage: "Сообщение",
|
|
1380
|
+
remove: "Удалить",
|
|
1381
|
+
closeTab: "Закрыть вкладку"
|
|
1382
|
+
},
|
|
1383
|
+
"../assets/locales/th.json": {
|
|
1384
|
+
valueMissing: "จำเป็นต้องกรอกข้อมูลนี้",
|
|
1385
|
+
badInput: "กรุณากรอกค่าที่ถูกต้อง",
|
|
1386
|
+
typeMismatch: "กรุณากรอกค่าให้ถูกรูปแบบ",
|
|
1387
|
+
patternMismatch: "กรุณากรอกให้ตรงตามรูปแบบที่กำหนด",
|
|
1388
|
+
rangeUnderflow: "ค่าต้องมากกว่าหรือเท่ากับ {min}",
|
|
1389
|
+
rangeOverflow: "ค่าต้องน้อยกว่าหรือเท่ากับ {max}",
|
|
1390
|
+
stepMismatch: "ค่าต้องเป็นจำนวนทวีคูณของ {step}",
|
|
1391
|
+
tooShort: "ต้องมีอย่างน้อย {min}",
|
|
1392
|
+
tooLong: "ต้องไม่เกิน {max}",
|
|
1393
|
+
increment: "เพิ่มค่า",
|
|
1394
|
+
decrement: "ลดค่า",
|
|
1395
|
+
clear: "ล้างค่า",
|
|
1396
|
+
today: "วันนี้",
|
|
1397
|
+
time: "เวลา",
|
|
1398
|
+
showPassword: "แสดงรหัสผ่าน",
|
|
1399
|
+
hidePassword: "ซ่อนรหัสผ่าน",
|
|
1400
|
+
previousSlide: "สไลด์ก่อนหน้า",
|
|
1401
|
+
nextSlide: "สไลด์ถัดไป",
|
|
1402
|
+
goToSlide: "ไปที่สไลด์ที่ {n}",
|
|
1403
|
+
chooseDate: "เลือกวันที่",
|
|
1404
|
+
previousMonth: "เดือนก่อนหน้า",
|
|
1405
|
+
nextMonth: "เดือนถัดไป",
|
|
1406
|
+
close: "ปิด",
|
|
1407
|
+
copy: "คัดลอก",
|
|
1408
|
+
copied: "คัดลอกแล้ว",
|
|
1409
|
+
chooseFile: "เลือกไฟล์",
|
|
1410
|
+
noFileChosen: "ยังไม่ได้เลือกไฟล์",
|
|
1411
|
+
filesSelected: "เลือกแล้ว {count} ไฟล์",
|
|
1412
|
+
resizePanels: "ปรับขนาดแผง",
|
|
1413
|
+
search: "ค้นหา",
|
|
1414
|
+
alertError: "ข้อผิดพลาด",
|
|
1415
|
+
alertWarning: "คำเตือน",
|
|
1416
|
+
alertSuccess: "สำเร็จ",
|
|
1417
|
+
alertInfo: "ข้อมูล",
|
|
1418
|
+
alertNotice: "ประกาศ",
|
|
1419
|
+
alertMessage: "ข้อความ",
|
|
1420
|
+
remove: "ลบ",
|
|
1421
|
+
closeTab: "ปิดแท็บ"
|
|
1422
|
+
},
|
|
1423
|
+
"../assets/locales/vi.json": {
|
|
1424
|
+
valueMissing: "Trường này là bắt buộc",
|
|
1425
|
+
badInput: "Vui lòng nhập giá trị hợp lệ",
|
|
1426
|
+
typeMismatch: "Vui lòng nhập giá trị đúng định dạng",
|
|
1427
|
+
patternMismatch: "Vui lòng nhập đúng định dạng yêu cầu",
|
|
1428
|
+
rangeUnderflow: "Giá trị phải lớn hơn hoặc bằng {min}",
|
|
1429
|
+
rangeOverflow: "Giá trị phải nhỏ hơn hoặc bằng {max}",
|
|
1430
|
+
stepMismatch: "Giá trị phải là bội số của {step}",
|
|
1431
|
+
tooShort: "Phải lớn hơn hoặc bằng {min}",
|
|
1432
|
+
tooLong: "Phải nhỏ hơn hoặc bằng {max}",
|
|
1433
|
+
increment: "Tăng giá trị",
|
|
1434
|
+
decrement: "Giảm giá trị",
|
|
1435
|
+
clear: "Xóa giá trị",
|
|
1436
|
+
today: "Hôm nay",
|
|
1437
|
+
time: "Giờ",
|
|
1438
|
+
showPassword: "Hiện mật khẩu",
|
|
1439
|
+
hidePassword: "Ẩn mật khẩu",
|
|
1440
|
+
previousSlide: "Slide trước",
|
|
1441
|
+
nextSlide: "Slide sau",
|
|
1442
|
+
goToSlide: "Đi đến slide {n}",
|
|
1443
|
+
chooseDate: "Chọn ngày",
|
|
1444
|
+
previousMonth: "Tháng trước",
|
|
1445
|
+
nextMonth: "Tháng sau",
|
|
1446
|
+
close: "Đóng",
|
|
1447
|
+
copy: "Sao chép",
|
|
1448
|
+
copied: "Đã sao chép",
|
|
1449
|
+
chooseFile: "Chọn tệp",
|
|
1450
|
+
noFileChosen: "Chưa chọn tệp nào",
|
|
1451
|
+
filesSelected: "Đã chọn {count} tệp",
|
|
1452
|
+
resizePanels: "Thay đổi kích thước bảng",
|
|
1453
|
+
search: "Tìm kiếm",
|
|
1454
|
+
alertError: "Lỗi",
|
|
1455
|
+
alertWarning: "Cảnh báo",
|
|
1456
|
+
alertSuccess: "Thành công",
|
|
1457
|
+
alertInfo: "Thông tin",
|
|
1458
|
+
alertNotice: "Lưu ý",
|
|
1459
|
+
alertMessage: "Thông báo",
|
|
1460
|
+
remove: "Xóa",
|
|
1461
|
+
closeTab: "Đóng tab"
|
|
1462
|
+
},
|
|
1463
|
+
"../assets/locales/zh-CN.json": {
|
|
1464
|
+
valueMissing: "此项为必填项",
|
|
1465
|
+
badInput: "请输入有效的值",
|
|
1466
|
+
typeMismatch: "请输入正确格式的值",
|
|
1467
|
+
patternMismatch: "请按照要求的格式输入",
|
|
1468
|
+
rangeUnderflow: "值必须大于或等于{min}",
|
|
1469
|
+
rangeOverflow: "值必须小于或等于{max}",
|
|
1470
|
+
stepMismatch: "值必须是{step}的倍数",
|
|
1471
|
+
tooShort: "至少需要{min}",
|
|
1472
|
+
tooLong: "最多不能超过{max}",
|
|
1473
|
+
increment: "增加值",
|
|
1474
|
+
decrement: "减少值",
|
|
1475
|
+
clear: "清除值",
|
|
1476
|
+
today: "今天",
|
|
1477
|
+
time: "时间",
|
|
1478
|
+
showPassword: "显示密码",
|
|
1479
|
+
hidePassword: "隐藏密码",
|
|
1480
|
+
previousSlide: "上一张幻灯片",
|
|
1481
|
+
nextSlide: "下一张幻灯片",
|
|
1482
|
+
goToSlide: "转到幻灯片{n}",
|
|
1483
|
+
chooseDate: "选择日期",
|
|
1484
|
+
previousMonth: "上个月",
|
|
1485
|
+
nextMonth: "下个月",
|
|
1486
|
+
close: "关闭",
|
|
1487
|
+
copy: "复制",
|
|
1488
|
+
copied: "已复制",
|
|
1489
|
+
chooseFile: "选择文件",
|
|
1490
|
+
noFileChosen: "未选择文件",
|
|
1491
|
+
filesSelected: "已选择{count}个文件",
|
|
1492
|
+
resizePanels: "调整面板大小",
|
|
1493
|
+
search: "搜索",
|
|
1494
|
+
alertError: "错误",
|
|
1495
|
+
alertWarning: "警告",
|
|
1496
|
+
alertSuccess: "成功",
|
|
1497
|
+
alertInfo: "信息",
|
|
1498
|
+
alertNotice: "提示",
|
|
1499
|
+
alertMessage: "消息",
|
|
1500
|
+
remove: "移除",
|
|
1501
|
+
closeTab: "关闭标签页"
|
|
1502
|
+
},
|
|
1503
|
+
"../assets/locales/zh-TW.json": {
|
|
1504
|
+
valueMissing: "此欄位為必填",
|
|
1505
|
+
badInput: "請輸入有效的值",
|
|
1506
|
+
typeMismatch: "請輸入正確格式的值",
|
|
1507
|
+
patternMismatch: "請依照要求的格式輸入",
|
|
1508
|
+
rangeUnderflow: "值必須大於或等於{min}",
|
|
1509
|
+
rangeOverflow: "值必須小於或等於{max}",
|
|
1510
|
+
stepMismatch: "值必須是{step}的倍數",
|
|
1511
|
+
tooShort: "至少需要{min}",
|
|
1512
|
+
tooLong: "最多不能超過{max}",
|
|
1513
|
+
increment: "增加值",
|
|
1514
|
+
decrement: "減少值",
|
|
1515
|
+
clear: "清除值",
|
|
1516
|
+
today: "今天",
|
|
1517
|
+
time: "時間",
|
|
1518
|
+
showPassword: "顯示密碼",
|
|
1519
|
+
hidePassword: "隱藏密碼",
|
|
1520
|
+
previousSlide: "上一張投影片",
|
|
1521
|
+
nextSlide: "下一張投影片",
|
|
1522
|
+
goToSlide: "前往投影片{n}",
|
|
1523
|
+
chooseDate: "選擇日期",
|
|
1524
|
+
previousMonth: "上個月",
|
|
1525
|
+
nextMonth: "下個月",
|
|
1526
|
+
close: "關閉",
|
|
1527
|
+
copy: "複製",
|
|
1528
|
+
copied: "已複製",
|
|
1529
|
+
chooseFile: "選擇檔案",
|
|
1530
|
+
noFileChosen: "未選擇檔案",
|
|
1531
|
+
filesSelected: "已選擇{count}個檔案",
|
|
1532
|
+
resizePanels: "調整面板大小",
|
|
1533
|
+
search: "搜尋",
|
|
1534
|
+
alertError: "錯誤",
|
|
1535
|
+
alertWarning: "警告",
|
|
1536
|
+
alertSuccess: "成功",
|
|
1537
|
+
alertInfo: "資訊",
|
|
1538
|
+
alertNotice: "提示",
|
|
1539
|
+
alertMessage: "訊息",
|
|
1540
|
+
remove: "移除",
|
|
1541
|
+
closeTab: "關閉分頁"
|
|
1542
|
+
}
|
|
1543
|
+
})).map(([e, t]) => [(e.split("/").pop()?.replace(".json", "") || "").toLowerCase(), t])), x = /* @__PURE__ */ new Map();
|
|
1544
|
+
function S() {
|
|
1545
|
+
return typeof document < "u" && document.documentElement?.lang ? document.documentElement.lang : typeof window < "u" && typeof navigator < "u" && navigator.language ? navigator.language : "en";
|
|
1546
|
+
}
|
|
1547
|
+
var C = S();
|
|
1548
|
+
function w(e) {
|
|
1549
|
+
let t = e.toLowerCase(), n = t.split("-")[0];
|
|
1550
|
+
return n === t ? [t, "en"] : [
|
|
1551
|
+
t,
|
|
1552
|
+
n,
|
|
1553
|
+
"en"
|
|
1554
|
+
];
|
|
1555
|
+
}
|
|
1556
|
+
function T(e, t) {
|
|
1557
|
+
return t ? e.replace(/\{(\w+)\}/g, (e, n) => t[n] == null ? `{${n}}` : String(t[n])) : e;
|
|
1558
|
+
}
|
|
1559
|
+
function E(e, t) {
|
|
1560
|
+
for (let n of w(e)) {
|
|
1561
|
+
let e = x.get(n)?.[t] ?? b.get(n)?.[t];
|
|
1562
|
+
if (e) return e;
|
|
1563
|
+
}
|
|
1564
|
+
return b.get("en")[t];
|
|
1565
|
+
}
|
|
1566
|
+
var D = /* @__PURE__ */ new Map(), O = class {
|
|
1567
|
+
constructor() {}
|
|
1568
|
+
static set(e) {
|
|
1569
|
+
C = e;
|
|
1570
|
+
}
|
|
1571
|
+
static get() {
|
|
1572
|
+
return C;
|
|
1573
|
+
}
|
|
1574
|
+
static register(e, t) {
|
|
1575
|
+
let n = e.toLowerCase(), r = x.get(n) ?? b.get(n) ?? b.get("en");
|
|
1576
|
+
x.set(n, {
|
|
1577
|
+
...r,
|
|
1578
|
+
...t
|
|
1579
|
+
});
|
|
1580
|
+
}
|
|
1581
|
+
static getValue(e, t) {
|
|
1582
|
+
return T(E(C, e), t);
|
|
1583
|
+
}
|
|
1584
|
+
static namespace(e) {
|
|
1585
|
+
return {
|
|
1586
|
+
name: e,
|
|
1587
|
+
register(t, n) {
|
|
1588
|
+
let r = D.get(e) ?? /* @__PURE__ */ new Map(), i = t.toLowerCase();
|
|
1589
|
+
r.set(i, {
|
|
1590
|
+
...r.get(i),
|
|
1591
|
+
...n
|
|
1592
|
+
}), D.set(e, r);
|
|
1593
|
+
},
|
|
1594
|
+
text(t, n) {
|
|
1595
|
+
let r = D.get(e);
|
|
1596
|
+
for (let e of w(C)) {
|
|
1597
|
+
let i = r?.get(e)?.[t];
|
|
1598
|
+
if (i) return T(i, n);
|
|
1599
|
+
}
|
|
1600
|
+
return t;
|
|
1601
|
+
}
|
|
1602
|
+
};
|
|
1603
|
+
}
|
|
1604
|
+
}.namespace("flex-table");
|
|
1605
|
+
O.register("en", {
|
|
1606
|
+
showHiddenColumns: "Show hidden column(s)",
|
|
1607
|
+
columnMenu: "Column menu",
|
|
1608
|
+
cellActions: "Cell actions",
|
|
1609
|
+
noColumnsDefined: "No columns defined",
|
|
1610
|
+
addCommentPlaceholder: "Add a comment… (Ctrl+Enter to save)",
|
|
1611
|
+
cancel: "Cancel",
|
|
1612
|
+
save: "Save",
|
|
1613
|
+
clear: "Clear",
|
|
1614
|
+
blankCells: "Blank cells",
|
|
1615
|
+
emptyOnly: "Empty only",
|
|
1616
|
+
nonEmptyOnly: "Non-empty only",
|
|
1617
|
+
blankAll: "— All —",
|
|
1618
|
+
all: "All",
|
|
1619
|
+
contains: "Contains",
|
|
1620
|
+
startsWith: "Starts with",
|
|
1621
|
+
endsWith: "Ends with",
|
|
1622
|
+
wildcard: "Wildcard",
|
|
1623
|
+
searchPlaceholder: "Search...",
|
|
1624
|
+
valuePlaceholder: "Value",
|
|
1625
|
+
fromPlaceholder: "From",
|
|
1626
|
+
toPlaceholder: "To",
|
|
1627
|
+
findPlaceholder: "Find...",
|
|
1628
|
+
findPrevious: "Previous (Shift+Enter)",
|
|
1629
|
+
findNext: "Next (Enter)",
|
|
1630
|
+
matchCase: "Match case",
|
|
1631
|
+
wholeCell: "Whole cell",
|
|
1632
|
+
closeFind: "Close (Escape)",
|
|
1633
|
+
replaceWithPlaceholder: "Replace with...",
|
|
1634
|
+
replace: "Replace",
|
|
1635
|
+
replaceAll: "Replace all"
|
|
1636
|
+
}), O.register("ko", {
|
|
1637
|
+
showHiddenColumns: "숨긴 열 보기",
|
|
1638
|
+
columnMenu: "열 메뉴",
|
|
1639
|
+
cellActions: "셀 작업",
|
|
1640
|
+
noColumnsDefined: "정의된 열이 없습니다",
|
|
1641
|
+
addCommentPlaceholder: "메모 입력… (Ctrl+Enter 로 저장)",
|
|
1642
|
+
cancel: "취소",
|
|
1643
|
+
save: "저장",
|
|
1644
|
+
clear: "지우기",
|
|
1645
|
+
blankCells: "빈 셀",
|
|
1646
|
+
emptyOnly: "빈 값만",
|
|
1647
|
+
nonEmptyOnly: "빈 값 제외",
|
|
1648
|
+
blankAll: "— 전체 —",
|
|
1649
|
+
all: "전체",
|
|
1650
|
+
contains: "포함",
|
|
1651
|
+
startsWith: "시작 문자",
|
|
1652
|
+
endsWith: "끝 문자",
|
|
1653
|
+
wildcard: "와일드카드",
|
|
1654
|
+
searchPlaceholder: "검색...",
|
|
1655
|
+
valuePlaceholder: "값",
|
|
1656
|
+
fromPlaceholder: "시작",
|
|
1657
|
+
toPlaceholder: "끝",
|
|
1658
|
+
findPlaceholder: "찾기...",
|
|
1659
|
+
findPrevious: "이전 (Shift+Enter)",
|
|
1660
|
+
findNext: "다음 (Enter)",
|
|
1661
|
+
matchCase: "대/소문자 구분",
|
|
1662
|
+
wholeCell: "셀 전체 일치",
|
|
1663
|
+
closeFind: "닫기 (Escape)",
|
|
1664
|
+
replaceWithPlaceholder: "바꿀 내용...",
|
|
1665
|
+
replace: "바꾸기",
|
|
1666
|
+
replaceAll: "모두 바꾸기"
|
|
1667
|
+
});
|
|
1668
|
+
var k = (e) => O.text(e);
|
|
1669
|
+
//#endregion
|
|
981
1670
|
//#region src/core/selection.ts
|
|
982
|
-
function
|
|
1671
|
+
function ee(e) {
|
|
983
1672
|
return {
|
|
984
1673
|
startRow: Math.min(e.startRow, e.endRow),
|
|
985
1674
|
startCol: Math.min(e.startCol, e.endCol),
|
|
@@ -987,7 +1676,7 @@ function b(e) {
|
|
|
987
1676
|
endCol: Math.max(e.startCol, e.endCol)
|
|
988
1677
|
};
|
|
989
1678
|
}
|
|
990
|
-
var
|
|
1679
|
+
var te = class {
|
|
991
1680
|
constructor() {
|
|
992
1681
|
this.activeCell = null, this.rangeAnchor = null, this.range = null, this.extraRanges = [], this._rowCount = 0, this._colCount = 0;
|
|
993
1682
|
}
|
|
@@ -1014,7 +1703,7 @@ var x = class {
|
|
|
1014
1703
|
return e < 0 || e >= this._rowCount || t < 0 || t >= this._colCount ? this.activeCell : (!this.rangeAnchor && this.activeCell && (this.rangeAnchor = { ...this.activeCell }), this.activeCell = {
|
|
1015
1704
|
row: e,
|
|
1016
1705
|
col: t
|
|
1017
|
-
}, this.rangeAnchor && (this.range =
|
|
1706
|
+
}, this.rangeAnchor && (this.range = ee({
|
|
1018
1707
|
startRow: this.rangeAnchor.row,
|
|
1019
1708
|
startCol: this.rangeAnchor.col,
|
|
1020
1709
|
endRow: e,
|
|
@@ -1085,7 +1774,7 @@ var x = class {
|
|
|
1085
1774
|
shiftMoveRight() {
|
|
1086
1775
|
return this.activeCell ? this.setActiveWithRange(this.activeCell.row, this.activeCell.col + 1) : null;
|
|
1087
1776
|
}
|
|
1088
|
-
},
|
|
1777
|
+
}, ne = class {
|
|
1089
1778
|
constructor() {
|
|
1090
1779
|
this.current = null;
|
|
1091
1780
|
}
|
|
@@ -1106,7 +1795,7 @@ var x = class {
|
|
|
1106
1795
|
let e = this.current;
|
|
1107
1796
|
return this.current = null, e;
|
|
1108
1797
|
}
|
|
1109
|
-
},
|
|
1798
|
+
}, A = class {
|
|
1110
1799
|
constructor() {
|
|
1111
1800
|
this._selected = /* @__PURE__ */ new Set(), this._mode = "multi", this._rowCount = 0;
|
|
1112
1801
|
}
|
|
@@ -1167,7 +1856,7 @@ var x = class {
|
|
|
1167
1856
|
};
|
|
1168
1857
|
//#endregion
|
|
1169
1858
|
//#region src/core/filtering.ts
|
|
1170
|
-
function
|
|
1859
|
+
function j(e, t, n) {
|
|
1171
1860
|
if (t.length === 0) return Array.from({ length: e.length }, (e, t) => t);
|
|
1172
1861
|
let r = [];
|
|
1173
1862
|
for (let i = 0; i < e.length; i++) {
|
|
@@ -1186,9 +1875,9 @@ function w(e, t, n) {
|
|
|
1186
1875
|
}
|
|
1187
1876
|
//#endregion
|
|
1188
1877
|
//#region src/core/undo.ts
|
|
1189
|
-
var
|
|
1878
|
+
var re = 100, M = class {
|
|
1190
1879
|
constructor() {
|
|
1191
|
-
this._undoStack = [], this._redoStack = [], this._maxSize =
|
|
1880
|
+
this._undoStack = [], this._redoStack = [], this._maxSize = re;
|
|
1192
1881
|
}
|
|
1193
1882
|
get maxSize() {
|
|
1194
1883
|
return this._maxSize;
|
|
@@ -1225,7 +1914,7 @@ var T = 100, E = class {
|
|
|
1225
1914
|
};
|
|
1226
1915
|
//#endregion
|
|
1227
1916
|
//#region src/clipboard/clipboard.ts
|
|
1228
|
-
function
|
|
1917
|
+
function ie(e, t, n) {
|
|
1229
1918
|
let r = [];
|
|
1230
1919
|
for (let i = n.startRow; i <= n.endRow; i++) {
|
|
1231
1920
|
let a = e[i], o = [];
|
|
@@ -1237,7 +1926,7 @@ function D(e, t, n) {
|
|
|
1237
1926
|
}
|
|
1238
1927
|
return r.join("\n");
|
|
1239
1928
|
}
|
|
1240
|
-
function
|
|
1929
|
+
function N(e) {
|
|
1241
1930
|
let t = e.replace(/\r\n/g, "\n").replace(/\r/g, "\n"), n = [], r = [], i = 0, a = t.length;
|
|
1242
1931
|
for (; i <= a;) {
|
|
1243
1932
|
if (i === a) {
|
|
@@ -1267,7 +1956,7 @@ function O(e) {
|
|
|
1267
1956
|
}
|
|
1268
1957
|
return n;
|
|
1269
1958
|
}
|
|
1270
|
-
function
|
|
1959
|
+
function P(e, t) {
|
|
1271
1960
|
if (e === "") return null;
|
|
1272
1961
|
switch (t.type) {
|
|
1273
1962
|
case "number": {
|
|
@@ -1280,7 +1969,7 @@ function k(e, t) {
|
|
|
1280
1969
|
}
|
|
1281
1970
|
//#endregion
|
|
1282
1971
|
//#region src/export/xlsx-writer.ts
|
|
1283
|
-
var
|
|
1972
|
+
var ae = (() => {
|
|
1284
1973
|
let e = /* @__PURE__ */ new Uint32Array(256);
|
|
1285
1974
|
for (let t = 0; t < 256; t++) {
|
|
1286
1975
|
let n = t;
|
|
@@ -1289,56 +1978,56 @@ var A = (() => {
|
|
|
1289
1978
|
}
|
|
1290
1979
|
return e;
|
|
1291
1980
|
})();
|
|
1292
|
-
function
|
|
1981
|
+
function oe(e) {
|
|
1293
1982
|
let t = 4294967295;
|
|
1294
|
-
for (let n = 0; n < e.length; n++) t =
|
|
1983
|
+
for (let n = 0; n < e.length; n++) t = ae[(t ^ e[n]) & 255] ^ t >>> 8;
|
|
1295
1984
|
return (t ^ 4294967295) >>> 0;
|
|
1296
1985
|
}
|
|
1297
|
-
var
|
|
1298
|
-
function
|
|
1986
|
+
var F = new TextEncoder();
|
|
1987
|
+
function se(e) {
|
|
1299
1988
|
let t = [], n = [], r = 0;
|
|
1300
1989
|
for (let i of e) {
|
|
1301
|
-
let e =
|
|
1990
|
+
let e = F.encode(i.name), a = oe(i.data), o = i.data.length, s = new ArrayBuffer(30 + e.length), c = new DataView(s);
|
|
1302
1991
|
c.setUint32(0, 67324752, !0), c.setUint16(4, 20, !0), c.setUint16(6, 0, !0), c.setUint16(8, 0, !0), c.setUint16(10, 0, !0), c.setUint16(12, 33, !0), c.setUint32(14, a, !0), c.setUint32(18, o, !0), c.setUint32(22, o, !0), c.setUint16(26, e.length, !0), c.setUint16(28, 0, !0), new Uint8Array(s, 30).set(e), t.push(new Uint8Array(s)), t.push(i.data);
|
|
1303
1992
|
let l = new ArrayBuffer(46 + e.length), u = new DataView(l);
|
|
1304
1993
|
u.setUint32(0, 33639248, !0), u.setUint16(4, 20, !0), u.setUint16(6, 20, !0), u.setUint16(8, 0, !0), u.setUint16(10, 0, !0), u.setUint16(12, 0, !0), u.setUint16(14, 33, !0), u.setUint32(16, a, !0), u.setUint32(20, o, !0), u.setUint32(24, o, !0), u.setUint16(28, e.length, !0), u.setUint16(30, 0, !0), u.setUint16(32, 0, !0), u.setUint16(34, 0, !0), u.setUint16(36, 0, !0), u.setUint32(38, 0, !0), u.setUint32(42, r, !0), new Uint8Array(l, 46).set(e), n.push(new Uint8Array(l)), r += 30 + e.length + o;
|
|
1305
1994
|
}
|
|
1306
|
-
let i =
|
|
1307
|
-
return o.setUint32(0, 101010256, !0), o.setUint16(4, 0, !0), o.setUint16(6, 0, !0), o.setUint16(8, e.length, !0), o.setUint16(10, e.length, !0), o.setUint32(12, i.length, !0), o.setUint32(16, r, !0), o.setUint16(20, 0, !0),
|
|
1995
|
+
let i = I(n), a = /* @__PURE__ */ new ArrayBuffer(22), o = new DataView(a);
|
|
1996
|
+
return o.setUint32(0, 101010256, !0), o.setUint16(4, 0, !0), o.setUint16(6, 0, !0), o.setUint16(8, e.length, !0), o.setUint16(10, e.length, !0), o.setUint32(12, i.length, !0), o.setUint32(16, r, !0), o.setUint16(20, 0, !0), I([
|
|
1308
1997
|
...t,
|
|
1309
1998
|
i,
|
|
1310
1999
|
new Uint8Array(a)
|
|
1311
2000
|
]);
|
|
1312
2001
|
}
|
|
1313
|
-
function
|
|
2002
|
+
function I(e) {
|
|
1314
2003
|
let t = e.reduce((e, t) => e + t.length, 0), n = new Uint8Array(t), r = 0;
|
|
1315
2004
|
for (let t of e) n.set(t, r), r += t.length;
|
|
1316
2005
|
return n;
|
|
1317
2006
|
}
|
|
1318
|
-
function
|
|
2007
|
+
function L(e) {
|
|
1319
2008
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
1320
2009
|
}
|
|
1321
|
-
function
|
|
2010
|
+
function ce(e) {
|
|
1322
2011
|
let t = "";
|
|
1323
2012
|
for (e++; e > 0;) t = String.fromCharCode(64 + (e % 26 || 26)) + t, e = Math.floor((e - 1) / 26);
|
|
1324
2013
|
return t;
|
|
1325
2014
|
}
|
|
1326
|
-
function
|
|
1327
|
-
return
|
|
2015
|
+
function R(e, t) {
|
|
2016
|
+
return ce(t) + (e + 1);
|
|
1328
2017
|
}
|
|
1329
|
-
function
|
|
2018
|
+
function le(e) {
|
|
1330
2019
|
let t = Date.UTC(1899, 11, 30);
|
|
1331
2020
|
return (e.getTime() - t) / 864e5;
|
|
1332
2021
|
}
|
|
1333
|
-
var
|
|
1334
|
-
function
|
|
1335
|
-
let n = [], r = t.map((e, t) => `<c r="${
|
|
2022
|
+
var ue = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n <Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>\n <Default Extension=\"xml\" ContentType=\"application/xml\"/>\n <Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"/>\n <Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"/>\n <Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"/>\n</Types>", de = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>\n</Relationships>", fe = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">\n <sheets><sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/></sheets>\n</workbook>", z = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>\n <Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>\n</Relationships>", B = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">\n <numFmts count=\"1\"><numFmt numFmtId=\"164\" formatCode=\"yyyy-mm-dd\"/></numFmts>\n <fonts count=\"2\">\n <font><sz val=\"11\"/><name val=\"Calibri\"/></font>\n <font><sz val=\"11\"/><b/><name val=\"Calibri\"/></font>\n </fonts>\n <fills count=\"2\">\n <fill><patternFill patternType=\"none\"/></fill>\n <fill><patternFill patternType=\"gray125\"/></fill>\n </fills>\n <borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>\n <cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>\n <cellXfs count=\"3\">\n <xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\"/>\n <xf numFmtId=\"164\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyNumberFormat=\"1\"/>\n <xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyFont=\"1\"/>\n </cellXfs>\n</styleSheet>";
|
|
2023
|
+
function V(e, t) {
|
|
2024
|
+
let n = [], r = t.map((e, t) => `<c r="${R(0, t)}" t="str" s="2"><v>${L(e.header)}</v></c>`);
|
|
1336
2025
|
return n.push(`<row r="1">${r.join("")}</row>`), e.forEach((e, r) => {
|
|
1337
2026
|
let i = t.map((t, n) => {
|
|
1338
|
-
let i =
|
|
2027
|
+
let i = R(r + 1, n), a = e[t.key];
|
|
1339
2028
|
if (a == null) return `<c r="${i}" t="str"><v></v></c>`;
|
|
1340
2029
|
let o = t.type ?? "text";
|
|
1341
|
-
return o === "number" && typeof a == "number" ? `<c r="${i}"><v>${a}</v></c>` : (o === "date" || o === "datetime") && a instanceof Date ? `<c r="${i}" s="1"><v>${
|
|
2030
|
+
return o === "number" && typeof a == "number" ? `<c r="${i}"><v>${a}</v></c>` : (o === "date" || o === "datetime") && a instanceof Date ? `<c r="${i}" s="1"><v>${le(a).toFixed(6)}</v></c>` : o === "boolean" ? `<c r="${i}" t="b"><v>${+!!a}</v></c>` : `<c r="${i}" t="str"><v>${L(String(a))}</v></c>`;
|
|
1342
2031
|
});
|
|
1343
2032
|
n.push(`<row r="${r + 2}">${i.join("")}</row>`);
|
|
1344
2033
|
}), `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
@@ -1346,55 +2035,55 @@ function ce(e, t) {
|
|
|
1346
2035
|
<sheetData>${n.join("")}</sheetData>
|
|
1347
2036
|
</worksheet>`;
|
|
1348
2037
|
}
|
|
1349
|
-
function
|
|
1350
|
-
let n =
|
|
1351
|
-
return
|
|
2038
|
+
function pe(e, t) {
|
|
2039
|
+
let n = V(e, t);
|
|
2040
|
+
return se([
|
|
1352
2041
|
{
|
|
1353
2042
|
name: "[Content_Types].xml",
|
|
1354
|
-
data:
|
|
2043
|
+
data: F.encode(ue)
|
|
1355
2044
|
},
|
|
1356
2045
|
{
|
|
1357
2046
|
name: "_rels/.rels",
|
|
1358
|
-
data:
|
|
2047
|
+
data: F.encode(de)
|
|
1359
2048
|
},
|
|
1360
2049
|
{
|
|
1361
2050
|
name: "xl/workbook.xml",
|
|
1362
|
-
data:
|
|
2051
|
+
data: F.encode(fe)
|
|
1363
2052
|
},
|
|
1364
2053
|
{
|
|
1365
2054
|
name: "xl/_rels/workbook.xml.rels",
|
|
1366
|
-
data:
|
|
2055
|
+
data: F.encode(z)
|
|
1367
2056
|
},
|
|
1368
2057
|
{
|
|
1369
2058
|
name: "xl/worksheets/sheet1.xml",
|
|
1370
|
-
data:
|
|
2059
|
+
data: F.encode(n)
|
|
1371
2060
|
},
|
|
1372
2061
|
{
|
|
1373
2062
|
name: "xl/styles.xml",
|
|
1374
|
-
data:
|
|
2063
|
+
data: F.encode(B)
|
|
1375
2064
|
}
|
|
1376
2065
|
]);
|
|
1377
2066
|
}
|
|
1378
2067
|
//#endregion
|
|
1379
2068
|
//#region src/export/export.ts
|
|
1380
|
-
function
|
|
2069
|
+
function H(e, t, n) {
|
|
1381
2070
|
switch (n) {
|
|
1382
|
-
case "csv": return
|
|
1383
|
-
case "tsv": return
|
|
1384
|
-
case "json": return
|
|
1385
|
-
case "xlsx": return
|
|
2071
|
+
case "csv": return U(e, t, ",");
|
|
2072
|
+
case "tsv": return U(e, t, " ");
|
|
2073
|
+
case "json": return he(e, t);
|
|
2074
|
+
case "xlsx": return pe(e, t);
|
|
1386
2075
|
}
|
|
1387
2076
|
}
|
|
1388
|
-
function
|
|
2077
|
+
function me(e, t) {
|
|
1389
2078
|
return e == null ? "" : (t.type === "date" || t.type === "datetime") && e instanceof Date ? e.toISOString() : String(e);
|
|
1390
2079
|
}
|
|
1391
|
-
function
|
|
1392
|
-
return [t.map((e) =>
|
|
2080
|
+
function U(e, t, n) {
|
|
2081
|
+
return [t.map((e) => W(e.header, n)).join(n), ...e.map((e) => t.map((t) => W(me(e[t.key], t), n)).join(n))].join("\n");
|
|
1393
2082
|
}
|
|
1394
|
-
function
|
|
2083
|
+
function W(e, t) {
|
|
1395
2084
|
return e.includes(t) || e.includes("\"") || e.includes("\n") || e.includes("\r") ? "\"" + e.replace(/"/g, "\"\"") + "\"" : e;
|
|
1396
2085
|
}
|
|
1397
|
-
function
|
|
2086
|
+
function he(e, t) {
|
|
1398
2087
|
let n = e.map((e) => {
|
|
1399
2088
|
let n = {};
|
|
1400
2089
|
for (let r of t) {
|
|
@@ -1405,35 +2094,35 @@ function B(e, t) {
|
|
|
1405
2094
|
});
|
|
1406
2095
|
return JSON.stringify(n, null, 2);
|
|
1407
2096
|
}
|
|
1408
|
-
function
|
|
2097
|
+
function ge(e, t, n) {
|
|
1409
2098
|
let r = new Blob([e], { type: n }), i = URL.createObjectURL(r), a = document.createElement("a");
|
|
1410
2099
|
a.href = i, a.download = t, a.style.display = "none", document.body.appendChild(a), a.click(), document.body.removeChild(a), setTimeout(() => URL.revokeObjectURL(i), 100);
|
|
1411
2100
|
}
|
|
1412
|
-
var
|
|
2101
|
+
var _e = {
|
|
1413
2102
|
csv: "text/csv;charset=utf-8",
|
|
1414
2103
|
tsv: "text/tab-separated-values;charset=utf-8",
|
|
1415
2104
|
json: "application/json;charset=utf-8",
|
|
1416
2105
|
xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
1417
|
-
},
|
|
2106
|
+
}, ve = {
|
|
1418
2107
|
csv: ".csv",
|
|
1419
2108
|
tsv: ".tsv",
|
|
1420
2109
|
json: ".json",
|
|
1421
2110
|
xlsx: ".xlsx"
|
|
1422
2111
|
};
|
|
1423
|
-
function
|
|
1424
|
-
return
|
|
2112
|
+
function ye(e) {
|
|
2113
|
+
return _e[e];
|
|
1425
2114
|
}
|
|
1426
|
-
function
|
|
1427
|
-
return
|
|
2115
|
+
function be(e) {
|
|
2116
|
+
return ve[e];
|
|
1428
2117
|
}
|
|
1429
2118
|
//#endregion
|
|
1430
2119
|
//#region src/export/xlsx-reader.ts
|
|
1431
|
-
function
|
|
2120
|
+
function xe(e) {
|
|
1432
2121
|
for (let t = e.byteLength - 22; t >= 0; t--) if (e.getUint32(t, !0) === 101010256) return t;
|
|
1433
2122
|
throw Error("XLSX: End of central directory not found — not a valid ZIP file");
|
|
1434
2123
|
}
|
|
1435
|
-
function
|
|
1436
|
-
let t =
|
|
2124
|
+
function Se(e) {
|
|
2125
|
+
let t = xe(e), n = e.getUint32(t + 16, !0), r = e.getUint32(t + 12, !0), i = new TextDecoder("utf-8"), a = [], o = n, s = n + r;
|
|
1437
2126
|
for (; o < s && e.getUint32(o, !0) === 33639248;) {
|
|
1438
2127
|
let t = e.getUint16(o + 10, !0), n = e.getUint32(o + 20, !0), r = e.getUint32(o + 24, !0), s = e.getUint16(o + 28, !0), c = e.getUint16(o + 30, !0), l = e.getUint16(o + 32, !0), u = e.getUint32(o + 42, !0), d = i.decode(new Uint8Array(e.buffer, o + 46, s));
|
|
1439
2128
|
a.push({
|
|
@@ -1446,7 +2135,7 @@ function pe(e) {
|
|
|
1446
2135
|
}
|
|
1447
2136
|
return a;
|
|
1448
2137
|
}
|
|
1449
|
-
async function
|
|
2138
|
+
async function Ce(e) {
|
|
1450
2139
|
let t = new DecompressionStream("deflate-raw"), n = t.writable.getWriter(), r = t.readable.getReader();
|
|
1451
2140
|
n.write(e), n.close();
|
|
1452
2141
|
let i = [];
|
|
@@ -1459,40 +2148,40 @@ async function me(e) {
|
|
|
1459
2148
|
for (let e of i) o.set(e, s), s += e.length;
|
|
1460
2149
|
return o;
|
|
1461
2150
|
}
|
|
1462
|
-
async function
|
|
2151
|
+
async function we(e, t) {
|
|
1463
2152
|
let n = t.localHeaderOffset, r = e.getUint16(n + 26, !0), i = e.getUint16(n + 28, !0), a = n + 30 + r + i, o = new Uint8Array(e.buffer, a, t.compressedSize);
|
|
1464
2153
|
if (t.compressionMethod === 0) return o.slice();
|
|
1465
|
-
if (t.compressionMethod === 8) return
|
|
2154
|
+
if (t.compressionMethod === 8) return Ce(o);
|
|
1466
2155
|
throw Error(`XLSX: Unsupported compression method ${t.compressionMethod}`);
|
|
1467
2156
|
}
|
|
1468
|
-
async function
|
|
1469
|
-
let t = new DataView(e), n =
|
|
1470
|
-
for (let e of n) e.compressedSize === 0 && e.name.endsWith("/") || r.set(e.name, await
|
|
2157
|
+
async function Te(e) {
|
|
2158
|
+
let t = new DataView(e), n = Se(t), r = /* @__PURE__ */ new Map();
|
|
2159
|
+
for (let e of n) e.compressedSize === 0 && e.name.endsWith("/") || r.set(e.name, await we(t, e));
|
|
1471
2160
|
return r;
|
|
1472
2161
|
}
|
|
1473
|
-
var
|
|
1474
|
-
function
|
|
1475
|
-
let t =
|
|
2162
|
+
var Ee = new TextDecoder("utf-8");
|
|
2163
|
+
function G(e) {
|
|
2164
|
+
let t = Ee.decode(e);
|
|
1476
2165
|
return new DOMParser().parseFromString(t, "application/xml");
|
|
1477
2166
|
}
|
|
1478
|
-
function
|
|
2167
|
+
function De(e) {
|
|
1479
2168
|
if (!e) return [];
|
|
1480
|
-
let t =
|
|
2169
|
+
let t = G(e);
|
|
1481
2170
|
return Array.from(t.querySelectorAll("si")).map((e) => Array.from(e.querySelectorAll("t")).map((e) => e.textContent ?? "").join(""));
|
|
1482
2171
|
}
|
|
1483
|
-
function
|
|
2172
|
+
function Oe(e) {
|
|
1484
2173
|
let t = (e - 1) * 864e5 + Date.UTC(1899, 11, 30);
|
|
1485
2174
|
return new Date(t).toISOString().slice(0, 10);
|
|
1486
2175
|
}
|
|
1487
|
-
function
|
|
1488
|
-
let n =
|
|
2176
|
+
function ke(e, t) {
|
|
2177
|
+
let n = G(e).querySelectorAll("row");
|
|
1489
2178
|
if (n.length === 0) return [];
|
|
1490
2179
|
let r = 0, i = /* @__PURE__ */ new Map();
|
|
1491
2180
|
for (let e of n) {
|
|
1492
2181
|
let n = parseInt(e.getAttribute("r") ?? "1", 10) - 1, a = /* @__PURE__ */ new Map();
|
|
1493
2182
|
i.set(n, a);
|
|
1494
2183
|
for (let n of e.querySelectorAll("c")) {
|
|
1495
|
-
let e =
|
|
2184
|
+
let e = Ae(n.getAttribute("r") ?? "");
|
|
1496
2185
|
e > r && (r = e);
|
|
1497
2186
|
let i = n.getAttribute("t") ?? "", o = n.getAttribute("s") ?? "", s = n.querySelector("v")?.textContent ?? "", c = n.querySelector("is > t")?.textContent ?? null, l;
|
|
1498
2187
|
if (i === "s") l = t[parseInt(s, 10)] ?? "";
|
|
@@ -1501,7 +2190,7 @@ function be(e, t) {
|
|
|
1501
2190
|
else if (s === "") l = "";
|
|
1502
2191
|
else {
|
|
1503
2192
|
let e = parseFloat(s);
|
|
1504
|
-
l = !isNaN(e) && o !== "" && parseInt(o, 10) > 0 && e >= 1 && e <= 73050 ?
|
|
2193
|
+
l = !isNaN(e) && o !== "" && parseInt(o, 10) > 0 && e >= 1 && e <= 73050 ? Oe(e) : s;
|
|
1505
2194
|
}
|
|
1506
2195
|
a.set(e, l);
|
|
1507
2196
|
}
|
|
@@ -1515,13 +2204,13 @@ function be(e, t) {
|
|
|
1515
2204
|
}
|
|
1516
2205
|
return o;
|
|
1517
2206
|
}
|
|
1518
|
-
function
|
|
2207
|
+
function Ae(e) {
|
|
1519
2208
|
let t = 0, n = 0;
|
|
1520
2209
|
for (; n < e.length && e[n] >= "A" && e[n] <= "Z";) t = t * 26 + (e.charCodeAt(n) - 64), n++;
|
|
1521
2210
|
return t - 1;
|
|
1522
2211
|
}
|
|
1523
|
-
async function
|
|
1524
|
-
let t = await
|
|
2212
|
+
async function je(e) {
|
|
2213
|
+
let t = await Te(e), n = De(t.get("xl/sharedStrings.xml")), r = t.get("xl/worksheets/sheet1.xml");
|
|
1525
2214
|
if (!r) {
|
|
1526
2215
|
for (let [e, n] of t) if (e.toLowerCase().includes("worksheets/sheet")) {
|
|
1527
2216
|
r = n;
|
|
@@ -1529,7 +2218,7 @@ async function G(e) {
|
|
|
1529
2218
|
}
|
|
1530
2219
|
}
|
|
1531
2220
|
if (!r) throw Error("XLSX: No worksheet found");
|
|
1532
|
-
let i =
|
|
2221
|
+
let i = ke(r, n);
|
|
1533
2222
|
return i.length === 0 ? {
|
|
1534
2223
|
headers: [],
|
|
1535
2224
|
rows: []
|
|
@@ -1539,7 +2228,7 @@ async function G(e) {
|
|
|
1539
2228
|
};
|
|
1540
2229
|
}
|
|
1541
2230
|
//#endregion
|
|
1542
|
-
//#region \0@oxc-project+runtime@0.
|
|
2231
|
+
//#region \0@oxc-project+runtime@0.150.0/helpers/esm/decorate.js
|
|
1543
2232
|
function K(e, t, n, r) {
|
|
1544
2233
|
var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
|
|
1545
2234
|
if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
|
|
@@ -1555,9 +2244,9 @@ var q = {
|
|
|
1555
2244
|
lt: "<",
|
|
1556
2245
|
gte: "≥",
|
|
1557
2246
|
lte: "≤"
|
|
1558
|
-
}, J = 120, Y = 40, X = 20, Z = 32, Q = 5,
|
|
2247
|
+
}, J = 120, Y = 40, X = 20, Z = 32, Q = 5, Me = 200, $ = class extends n {
|
|
1559
2248
|
constructor(...e) {
|
|
1560
|
-
super(...e), this.columns = [], this._data = [], this._inUndoRedo = !1, this.clearUndoOnDataChange = !1, this.clearSelectionOnDataChange = !1, this._rowHeightFromCss = Z, this.showRowNumbers = !1, this.theme = void 0, this.maxRows = 0, this.editable = !0, this.showFilters = !1, this.showContextMenu = !1, this.frozenRows = 0, this.emptyMessage = "No data", this.noMatchingMessage = "No matching data", this.loading = !1, this.importEnabled = !1, this.selectable = !1, this.dataMode = "client", this.footerData = null, this.stylesheets = [], this._scrollTop = 0, this._scrollLeft = 0, this._viewportHeight = 0, this._viewportWidth = 0, this._colLeftOffsets = [], this._totalRowWidth = 0, this._baseStyleSheets = [], this._activeCell = null, this._editingCell = null, this._sortCriteria = [], this._selection = new
|
|
2249
|
+
super(...e), this.columns = [], this._data = [], this._inUndoRedo = !1, this.clearUndoOnDataChange = !1, this.clearSelectionOnDataChange = !1, this._rowHeightFromCss = Z, this.showRowNumbers = !1, this.theme = void 0, this.maxRows = 0, this.editable = !0, this.showFilters = !1, this.showContextMenu = !1, this.frozenRows = 0, this.emptyMessage = "No data", this.noMatchingMessage = "No matching data", this.loading = !1, this.importEnabled = !1, this.selectable = !1, this.dataMode = "client", this.footerData = null, this.stylesheets = [], this._scrollTop = 0, this._scrollLeft = 0, this._viewportHeight = 0, this._viewportWidth = 0, this._colLeftOffsets = [], this._totalRowWidth = 0, this._baseStyleSheets = [], this._activeCell = null, this._editingCell = null, this._sortCriteria = [], this._selection = new te(), this._editing = new ne(), this._rowSelection = new A(), this._undo = new M(), this._filters = [], this._filteredIndices = [], this._sortedIndices = [], this._openFilterKey = null, this._rowSelectionVersion = 0, this._lastCheckboxRowIndex = null, this._checkboxShiftPending = !1, this._autocompleteState = null, this._headerMenu = null, this._bodyContextMenu = null, this._commentPopup = null, this._viewDirty = !0, this._isDragging = !1, this._wasDrag = !1, this._resizing = null, this._resizeCleanup = null, this._wasHeaderDrag = !1, this._wasRowDrag = !1, this._colDrag = null, this._colDragIndicatorLeft = null, this._fillDrag = null, this._rowDrag = null, this._rowDragIndicatorY = null, this._findState = null, this._columnWidths = /* @__PURE__ */ new Map(), this._hostResizeObserver = null, this._comments = /* @__PURE__ */ new Map(), this._isDragOver = !1, this._warnedUnconstrained = !1, this._onCommentPopupOutsideClick = () => {
|
|
1561
2250
|
this._commitCommentPopup();
|
|
1562
2251
|
}, this._invalidCells = /* @__PURE__ */ new Map(), this._textFilterState = /* @__PURE__ */ new Map(), this._numberFilterState = /* @__PURE__ */ new Map(), this._dateFilterState = /* @__PURE__ */ new Map(), this._emptyFilterState = /* @__PURE__ */ new Map();
|
|
1563
2252
|
}
|
|
@@ -1922,12 +2611,12 @@ var q = {
|
|
|
1922
2611
|
if (!t) return "";
|
|
1923
2612
|
let n = this.visibleColumns.slice(t.startCol, t.endCol + 1), r = [];
|
|
1924
2613
|
for (let e = t.startRow; e <= t.endRow; e++) r.push(this.data[this._toDataIndex(e)]);
|
|
1925
|
-
return
|
|
2614
|
+
return H(r, n, e);
|
|
1926
2615
|
}
|
|
1927
|
-
return
|
|
2616
|
+
return H(this._sortedIndices.map((e) => this.data[e]), this.visibleColumns, e);
|
|
1928
2617
|
}
|
|
1929
2618
|
exportToFile(e, t) {
|
|
1930
|
-
|
|
2619
|
+
ge(this.exportToString(e), t ?? `export${be(e)}`, ye(e));
|
|
1931
2620
|
}
|
|
1932
2621
|
setComment(e, t, n) {
|
|
1933
2622
|
let r = this.getComment(e, t);
|
|
@@ -1984,10 +2673,10 @@ var q = {
|
|
|
1984
2673
|
async importFromFile(e) {
|
|
1985
2674
|
let t = e.name.toLowerCase();
|
|
1986
2675
|
if (t.endsWith(".xlsx")) {
|
|
1987
|
-
let t = await
|
|
2676
|
+
let t = await je(await e.arrayBuffer());
|
|
1988
2677
|
this._applyImportedSheet(t);
|
|
1989
2678
|
} else if (t.endsWith(".csv") || t.endsWith(".tsv")) {
|
|
1990
|
-
let t =
|
|
2679
|
+
let t = N(await e.text());
|
|
1991
2680
|
this._applyImportedRows(t);
|
|
1992
2681
|
} else console.warn(`flex-table importFromFile: unsupported file type "${e.name}"`);
|
|
1993
2682
|
}
|
|
@@ -1998,7 +2687,7 @@ var q = {
|
|
|
1998
2687
|
let a = t.get(e);
|
|
1999
2688
|
if (!a) return;
|
|
2000
2689
|
let o = this.columns.find((e) => e.key === a);
|
|
2001
|
-
r[a] = o ?
|
|
2690
|
+
r[a] = o ? P(n[i] ?? "", o) : n[i] ?? null;
|
|
2002
2691
|
}), r;
|
|
2003
2692
|
}), r = [...this.data];
|
|
2004
2693
|
this.data = n, this._undo.push({
|
|
@@ -2023,7 +2712,7 @@ var q = {
|
|
|
2023
2712
|
let a = n.get(t);
|
|
2024
2713
|
if (!a) return;
|
|
2025
2714
|
let o = this.columns.find((e) => e.key === a);
|
|
2026
|
-
r[a] = o ?
|
|
2715
|
+
r[a] = o ? P(e[i] ?? "", o) : e[i] ?? null;
|
|
2027
2716
|
}), r;
|
|
2028
2717
|
}), i = [...this.data];
|
|
2029
2718
|
this.data = r, this._undo.push({
|
|
@@ -2169,7 +2858,7 @@ var q = {
|
|
|
2169
2858
|
this._filteredIndices = Array.from({ length: this.data.length }, (e, t) => t), this._sortedIndices = this._filteredIndices;
|
|
2170
2859
|
return;
|
|
2171
2860
|
}
|
|
2172
|
-
if (this._filteredIndices =
|
|
2861
|
+
if (this._filteredIndices = j(this.data, this._filters, (e, t, n) => {
|
|
2173
2862
|
this.dispatchEvent(new CustomEvent("filter-error", {
|
|
2174
2863
|
detail: {
|
|
2175
2864
|
error: e,
|
|
@@ -2199,7 +2888,7 @@ var q = {
|
|
|
2199
2888
|
e !== this._viewportHeight && (this._viewportHeight = e), t !== this._viewportWidth && (this._viewportWidth = t), this._warnIfUnconstrained();
|
|
2200
2889
|
}
|
|
2201
2890
|
_warnIfUnconstrained() {
|
|
2202
|
-
this._warnedUnconstrained || process.env.NODE_ENV === "production" || this._visibleRowCount <
|
|
2891
|
+
this._warnedUnconstrained || process.env.NODE_ENV === "production" || this._visibleRowCount < Me || this.scrollHeight > this.clientHeight + 1 || (this._warnedUnconstrained = !0, console.warn(`[@iyulab/flex-table] ${this._visibleRowCount} rows but the host has no height constraint — it grew to fit every row, so virtual scrolling is off and all rows are rendered. Give the host a height (e.g. height: 400px, or flex: 1 1 auto with min-height: 0 inside a sized parent) so it becomes the scroll container.`));
|
|
2203
2892
|
}
|
|
2204
2893
|
_onScroll() {
|
|
2205
2894
|
this._scrollTop = this.scrollTop, this._scrollLeft = this.scrollLeft;
|
|
@@ -2329,7 +3018,7 @@ var q = {
|
|
|
2329
3018
|
}
|
|
2330
3019
|
let t = this.shadowRoot?.querySelector(".ft-editor");
|
|
2331
3020
|
if (t) {
|
|
2332
|
-
let n =
|
|
3021
|
+
let n = P(t.value, e);
|
|
2333
3022
|
this._applyEdit(n);
|
|
2334
3023
|
} else this._cancelEdit();
|
|
2335
3024
|
}
|
|
@@ -2557,7 +3246,7 @@ var q = {
|
|
|
2557
3246
|
async _handleCopy(e) {
|
|
2558
3247
|
let t = this._selection.getEffectiveRange();
|
|
2559
3248
|
if (!t) return;
|
|
2560
|
-
let n = this.visibleColumns, r =
|
|
3249
|
+
let n = this.visibleColumns, r = ie(this._sortedIndices.map((e) => this.data[e]), n, t);
|
|
2561
3250
|
try {
|
|
2562
3251
|
await navigator.clipboard.writeText(r);
|
|
2563
3252
|
} catch (e) {
|
|
@@ -2583,7 +3272,7 @@ var q = {
|
|
|
2583
3272
|
if (!this._activeCell) return;
|
|
2584
3273
|
let e = await this._readClipboardText();
|
|
2585
3274
|
if (e == null) return;
|
|
2586
|
-
let t =
|
|
3275
|
+
let t = N(e);
|
|
2587
3276
|
if (t.length === 0) return;
|
|
2588
3277
|
let n = this._expandRowsForPaste(this._activeCell.row, t.length), r = this._applyPasteData(this._activeCell, t);
|
|
2589
3278
|
if (r.length > 0 || n.length > 0) {
|
|
@@ -2641,7 +3330,7 @@ var q = {
|
|
|
2641
3330
|
for (let a = 0; a < t[i].length; a++) {
|
|
2642
3331
|
let s = e.col + a;
|
|
2643
3332
|
if (s >= n.length) break;
|
|
2644
|
-
let c = n[s], l = this.data[o][c.key], u =
|
|
3333
|
+
let c = n[s], l = this.data[o][c.key], u = P(t[i][a], c);
|
|
2645
3334
|
this.data[o][c.key] = u, r.push({
|
|
2646
3335
|
row: o,
|
|
2647
3336
|
col: s,
|
|
@@ -2706,7 +3395,7 @@ var q = {
|
|
|
2706
3395
|
for (let r = e.startCol + 1; r <= e.endCol; r++) {
|
|
2707
3396
|
let e = t[r];
|
|
2708
3397
|
if (!e || !this._isCellEditable(e)) continue;
|
|
2709
|
-
let a =
|
|
3398
|
+
let a = P(o == null ? "" : String(o), e);
|
|
2710
3399
|
n.push({
|
|
2711
3400
|
row: i,
|
|
2712
3401
|
key: e.key,
|
|
@@ -2865,7 +3554,7 @@ var q = {
|
|
|
2865
3554
|
@click=${n ? (t) => this._onHeaderClick(t, e) : void 0}>
|
|
2866
3555
|
${x ? i`
|
|
2867
3556
|
<button class="ft-hidden-col-indicator"
|
|
2868
|
-
title
|
|
3557
|
+
title=${k("showHiddenColumns")}
|
|
2869
3558
|
@click=${(t) => {
|
|
2870
3559
|
t.stopPropagation(), this._showHiddenBefore(e);
|
|
2871
3560
|
}}>❯</button>
|
|
@@ -2875,7 +3564,7 @@ var q = {
|
|
|
2875
3564
|
${o >= 0 ? i`<span class="ft-sort-order">${o + 1}</span>` : ""}
|
|
2876
3565
|
<button class="ft-column-menu-btn ${s ? "ft-filter-active" : ""}"
|
|
2877
3566
|
type="button"
|
|
2878
|
-
title
|
|
3567
|
+
title=${k("columnMenu")}
|
|
2879
3568
|
aria-label=${`Column menu: ${e.header}`}
|
|
2880
3569
|
aria-haspopup="menu"
|
|
2881
3570
|
aria-expanded=${this._headerMenu?.key === e.key ? "true" : "false"}
|
|
@@ -3032,7 +3721,7 @@ var q = {
|
|
|
3032
3721
|
}}>${e}</button>
|
|
3033
3722
|
`, f = i`<div class="ft-context-menu-separator" role="separator"></div>`;
|
|
3034
3723
|
return i`
|
|
3035
|
-
<div class="ft-body-context-menu" role="menu" aria-label
|
|
3724
|
+
<div class="ft-body-context-menu" role="menu" aria-label=${k("cellActions")}
|
|
3036
3725
|
style="position: fixed; left: ${n}px; top: ${r}px; z-index: 200;"
|
|
3037
3726
|
@mousedown=${(e) => e.stopPropagation()}
|
|
3038
3727
|
@keydown=${(e) => this._onMenuKeydown(e, ".ft-body-context-menu", l)}>
|
|
@@ -3083,13 +3772,13 @@ var q = {
|
|
|
3083
3772
|
@mousedown=${(e) => e.stopPropagation()}>
|
|
3084
3773
|
<textarea class="ft-comment-popup-textarea"
|
|
3085
3774
|
rows="4"
|
|
3086
|
-
placeholder
|
|
3775
|
+
placeholder=${k("addCommentPlaceholder")}
|
|
3087
3776
|
@keydown=${(e) => {
|
|
3088
3777
|
e.key === "Escape" && (e.preventDefault(), this._cancelCommentPopup()), e.key === "Enter" && (e.ctrlKey || e.metaKey) && (e.preventDefault(), this._commitCommentPopup());
|
|
3089
3778
|
}}></textarea>
|
|
3090
3779
|
<div class="ft-comment-popup-buttons">
|
|
3091
|
-
<button class="ft-comment-popup-cancel" @click=${() => this._cancelCommentPopup()}
|
|
3092
|
-
<button class="ft-comment-popup-save" @click=${() => this._commitCommentPopup()}
|
|
3780
|
+
<button class="ft-comment-popup-cancel" @click=${() => this._cancelCommentPopup()}>${k("cancel")}</button>
|
|
3781
|
+
<button class="ft-comment-popup-save" @click=${() => this._commitCommentPopup()}>${k("save")}</button>
|
|
3093
3782
|
</div>
|
|
3094
3783
|
</div>
|
|
3095
3784
|
`;
|
|
@@ -3125,7 +3814,7 @@ var q = {
|
|
|
3125
3814
|
<div class="ft-filter-dropdown" @click=${(e) => e.stopPropagation()}>
|
|
3126
3815
|
${t === "boolean" ? this._renderBooleanFilter(e) : t === "number" ? this._renderNumberFilter(e) : t === "date" || t === "datetime" ? this._renderDateFilter(e) : this._renderTextFilter(e)}
|
|
3127
3816
|
<div class="ft-filter-actions">
|
|
3128
|
-
<button class="ft-filter-clear" @click=${() => this._clearColumnFilter(e.key)}
|
|
3817
|
+
<button class="ft-filter-clear" @click=${() => this._clearColumnFilter(e.key)}>${k("clear")}</button>
|
|
3129
3818
|
</div>
|
|
3130
3819
|
</div>
|
|
3131
3820
|
`;
|
|
@@ -3158,7 +3847,7 @@ var q = {
|
|
|
3158
3847
|
let n = this._emptyFilterState.get(e) ?? "";
|
|
3159
3848
|
return i`
|
|
3160
3849
|
<div class="ft-filter-empty-row">
|
|
3161
|
-
<label
|
|
3850
|
+
<label>${k("blankCells")}</label>
|
|
3162
3851
|
<select class="ft-filter-mode-select"
|
|
3163
3852
|
.value=${n}
|
|
3164
3853
|
@change=${(n) => {
|
|
@@ -3168,9 +3857,9 @@ var q = {
|
|
|
3168
3857
|
@keydown=${(e) => {
|
|
3169
3858
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
3170
3859
|
}}>
|
|
3171
|
-
<option value=""
|
|
3172
|
-
<option value="empty"
|
|
3173
|
-
<option value="non-empty"
|
|
3860
|
+
<option value="">${k("blankAll")}</option>
|
|
3861
|
+
<option value="empty">${k("emptyOnly")}</option>
|
|
3862
|
+
<option value="non-empty">${k("nonEmptyOnly")}</option>
|
|
3174
3863
|
</select>
|
|
3175
3864
|
</div>
|
|
3176
3865
|
`;
|
|
@@ -3246,13 +3935,13 @@ var q = {
|
|
|
3246
3935
|
@keydown=${(e) => {
|
|
3247
3936
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
3248
3937
|
}}>
|
|
3249
|
-
<option value="contains"
|
|
3250
|
-
<option value="starts"
|
|
3251
|
-
<option value="ends"
|
|
3252
|
-
<option value="wildcard"
|
|
3938
|
+
<option value="contains">${k("contains")}</option>
|
|
3939
|
+
<option value="starts">${k("startsWith")}</option>
|
|
3940
|
+
<option value="ends">${k("endsWith")}</option>
|
|
3941
|
+
<option value="wildcard">${k("wildcard")}</option>
|
|
3253
3942
|
</select>
|
|
3254
3943
|
</div>
|
|
3255
|
-
<input class="ft-filter-input" type="text" placeholder
|
|
3944
|
+
<input class="ft-filter-input" type="text" placeholder=${k("searchPlaceholder")}
|
|
3256
3945
|
.value=${t.value}
|
|
3257
3946
|
@input=${(t) => {
|
|
3258
3947
|
let n = t.target.value, r = this._textFilterState.get(e.key) ?? {
|
|
@@ -3303,7 +3992,7 @@ var q = {
|
|
|
3303
3992
|
}}>
|
|
3304
3993
|
${Object.keys(q).map((e) => i`<option value=${e}>${q[e]}</option>`)}
|
|
3305
3994
|
</select>
|
|
3306
|
-
<input class="ft-filter-input ft-num-cond-input" type="number" placeholder
|
|
3995
|
+
<input class="ft-filter-input ft-num-cond-input" type="number" placeholder=${k("valuePlaceholder")}
|
|
3307
3996
|
.value=${n.value == null ? "" : String(n.value)}
|
|
3308
3997
|
@input=${(n) => {
|
|
3309
3998
|
let r = n.target.value, i = this._numberFilterState.get(e) ?? this._defaultNumState();
|
|
@@ -3364,13 +4053,13 @@ var q = {
|
|
|
3364
4053
|
let t = e.type === "datetime" ? "datetime-local" : "date", n = this._dateFilterState.get(e.key) ?? {};
|
|
3365
4054
|
return i`
|
|
3366
4055
|
<div class="ft-filter-range">
|
|
3367
|
-
<input class="ft-filter-input" type=${t} placeholder
|
|
4056
|
+
<input class="ft-filter-input" type=${t} placeholder=${k("fromPlaceholder")}
|
|
3368
4057
|
.value=${n.from ?? ""}
|
|
3369
4058
|
@input=${(t) => this._applyDateFilter(e.key, t, "from")}
|
|
3370
4059
|
@keydown=${(e) => {
|
|
3371
4060
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
3372
4061
|
}}>
|
|
3373
|
-
<input class="ft-filter-input" type=${t} placeholder
|
|
4062
|
+
<input class="ft-filter-input" type=${t} placeholder=${k("toPlaceholder")}
|
|
3374
4063
|
.value=${n.to ?? ""}
|
|
3375
4064
|
@input=${(t) => this._applyDateFilter(e.key, t, "to")}
|
|
3376
4065
|
@keydown=${(e) => {
|
|
@@ -3396,7 +4085,7 @@ var q = {
|
|
|
3396
4085
|
@keydown=${(e) => {
|
|
3397
4086
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
3398
4087
|
}}>
|
|
3399
|
-
<option value="all"
|
|
4088
|
+
<option value="all">${k("all")}</option>
|
|
3400
4089
|
<option value="true">\u2714 True</option>
|
|
3401
4090
|
<option value="false">\u2718 False</option>
|
|
3402
4091
|
</select>
|
|
@@ -3818,31 +4507,31 @@ var q = {
|
|
|
3818
4507
|
e.key === "Enter" && e.target instanceof HTMLInputElement && e.target.classList.contains("ft-find-input") && (e.shiftKey ? this._findPrev() : this._findNext());
|
|
3819
4508
|
}}>
|
|
3820
4509
|
<div class="ft-find-row">
|
|
3821
|
-
<input class="ft-find-input" type="text" placeholder
|
|
4510
|
+
<input class="ft-find-input" type="text" placeholder=${k("findPlaceholder")}
|
|
3822
4511
|
.value=${t}
|
|
3823
4512
|
@input=${(e) => {
|
|
3824
4513
|
this._findState.query = e.target.value, this._findSearch();
|
|
3825
4514
|
}}>
|
|
3826
4515
|
<span class="ft-find-count">${c > 0 ? `${l}/${c}` : t ? "0 results" : ""}</span>
|
|
3827
|
-
<button @click=${() => this._findPrev()} title
|
|
3828
|
-
<button @click=${() => this._findNext()} title
|
|
3829
|
-
<label title
|
|
4516
|
+
<button @click=${() => this._findPrev()} title=${k("findPrevious")}>◀</button>
|
|
4517
|
+
<button @click=${() => this._findNext()} title=${k("findNext")}>▶</button>
|
|
4518
|
+
<label title=${k("matchCase")}><input type="checkbox" ?checked=${r} @change=${(e) => {
|
|
3830
4519
|
this._findState.matchCase = e.target.checked, this._findSearch();
|
|
3831
4520
|
}}> Aa</label>
|
|
3832
|
-
<label title
|
|
4521
|
+
<label title=${k("wholeCell")}><input type="checkbox" ?checked=${a} @change=${(e) => {
|
|
3833
4522
|
this._findState.wholeCell = e.target.checked, this._findSearch();
|
|
3834
4523
|
}}> [ ]</label>
|
|
3835
|
-
<button @click=${() => this._closeFindPanel()} title
|
|
4524
|
+
<button @click=${() => this._closeFindPanel()} title=${k("closeFind")}>✕</button>
|
|
3836
4525
|
</div>
|
|
3837
4526
|
${e === "replace" ? i`
|
|
3838
4527
|
<div class="ft-find-row">
|
|
3839
|
-
<input class="ft-find-replace-input" type="text" placeholder
|
|
4528
|
+
<input class="ft-find-replace-input" type="text" placeholder=${k("replaceWithPlaceholder")}
|
|
3840
4529
|
.value=${n}
|
|
3841
4530
|
@input=${(e) => {
|
|
3842
4531
|
this._findState.replaceWith = e.target.value;
|
|
3843
4532
|
}}>
|
|
3844
|
-
<button @click=${() => this._replaceOne()} ?disabled=${c === 0}
|
|
3845
|
-
<button @click=${() => this._replaceAll()} ?disabled=${c === 0}
|
|
4533
|
+
<button @click=${() => this._replaceOne()} ?disabled=${c === 0}>${k("replace")}</button>
|
|
4534
|
+
<button @click=${() => this._replaceAll()} ?disabled=${c === 0}>${k("replaceAll")}</button>
|
|
3846
4535
|
</div>
|
|
3847
4536
|
` : ""}
|
|
3848
4537
|
</div>
|
|
@@ -3850,7 +4539,7 @@ var q = {
|
|
|
3850
4539
|
}
|
|
3851
4540
|
render() {
|
|
3852
4541
|
let e = this.visibleColumns, t = this.importEnabled && this._isDragOver ? i`<div class="ft-import-overlay">Drop file to import (.xlsx / .csv)</div>` : a, n = this.loading ? i`<div class="ft-loading-overlay"></div>` : a;
|
|
3853
|
-
if (e.length === 0) return i`${t}${n}<div class="ft-empty"
|
|
4542
|
+
if (e.length === 0) return i`${t}${n}<div class="ft-empty">${k("noColumnsDefined")}</div>`;
|
|
3854
4543
|
let r = this.headerHeight, o = this._totalRowWidth, { start: s, end: c } = this.visibleColRange, l = [];
|
|
3855
4544
|
for (let t = 0; t < e.length; t++) (e[t].pinned === "left" || e[t].pinned === "right") && (t < s || t >= c) && l.push(t);
|
|
3856
4545
|
let u = 0, d = this._scrollLeft, f = this.selectable ? i`<div class="ft-checkbox-header"
|
|
@@ -4159,4 +4848,4 @@ K([s({ type: Array })], $.prototype, "columns", void 0), K([s({
|
|
|
4159
4848
|
attribute: "max-undo-size"
|
|
4160
4849
|
})], $.prototype, "maxUndoSize", null), K([c()], $.prototype, "_scrollTop", void 0), K([c()], $.prototype, "_scrollLeft", void 0), K([c()], $.prototype, "_viewportHeight", void 0), K([c()], $.prototype, "_viewportWidth", void 0), K([c()], $.prototype, "_activeCell", void 0), K([c()], $.prototype, "_editingCell", void 0), K([c()], $.prototype, "_sortCriteria", void 0), K([c()], $.prototype, "_openFilterKey", void 0), K([c()], $.prototype, "_rowSelectionVersion", void 0), K([c()], $.prototype, "_autocompleteState", void 0), K([c()], $.prototype, "_headerMenu", void 0), K([c()], $.prototype, "_bodyContextMenu", void 0), K([c()], $.prototype, "_commentPopup", void 0), K([c()], $.prototype, "_isDragOver", void 0), $ = K([o("flex-table")], $);
|
|
4161
4850
|
//#endregion
|
|
4162
|
-
export {
|
|
4851
|
+
export { O as a, A as i, H as n, m as o, M as r, $ as t };
|