@iyulab/flex-table 0.40.1 → 0.40.2
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.
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { n as e, t } from "./sorting-CjfjRxwL.js";
|
|
2
2
|
import { LitElement as n, css as r, html as i, nothing as a } from "lit";
|
|
3
3
|
import { customElement as o, property as s, state as c } from "lit/decorators.js";
|
|
4
|
+
import { Locale as l } from "@iyulab/components/dist/utilities/Locale.js";
|
|
5
|
+
import { formatDate as u, formatNumber as d } from "@iyulab/components/dist/utilities/format.js";
|
|
6
|
+
import { decodeTsv as f, encodeTsv as p } from "@iyulab/components/dist/utilities/tsv.js";
|
|
7
|
+
import { isImeComposing as m } from "@iyulab/components/dist/utilities/keyboard.js";
|
|
4
8
|
//#region src/styles/flex-table.styles.ts
|
|
5
|
-
var
|
|
9
|
+
var h = r`
|
|
6
10
|
/* --- Theme Variables (Light defaults) --- */
|
|
7
11
|
:host {
|
|
8
12
|
--ft-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
@@ -905,701 +909,29 @@ var l = r`
|
|
|
905
909
|
outline: 2px solid var(--ft-find-color);
|
|
906
910
|
outline-offset: -2px;
|
|
907
911
|
}
|
|
908
|
-
|
|
909
|
-
"../assets/locales/ar.json": {
|
|
910
|
-
valueMissing: "هذا الحقل مطلوب",
|
|
911
|
-
badInput: "يرجى إدخال قيمة صالحة",
|
|
912
|
-
typeMismatch: "يرجى إدخال قيمة بالتنسيق الصحيح",
|
|
913
|
-
patternMismatch: "يرجى اتباع التنسيق المطلوب",
|
|
914
|
-
rangeUnderflow: "يجب أن تكون القيمة {min} على الأقل",
|
|
915
|
-
rangeOverflow: "يجب ألا تتجاوز القيمة {max}",
|
|
916
|
-
stepMismatch: "يجب أن تكون القيمة من مضاعفات {step}",
|
|
917
|
-
tooShort: "يجب أن تكون {min} على الأقل",
|
|
918
|
-
tooLong: "يجب ألا تتجاوز {max}",
|
|
919
|
-
increment: "زيادة القيمة",
|
|
920
|
-
decrement: "إنقاص القيمة",
|
|
921
|
-
clear: "مسح القيمة",
|
|
922
|
-
today: "اليوم",
|
|
923
|
-
time: "الوقت",
|
|
924
|
-
showPassword: "إظهار كلمة المرور",
|
|
925
|
-
hidePassword: "إخفاء كلمة المرور",
|
|
926
|
-
previousSlide: "الشريحة السابقة",
|
|
927
|
-
nextSlide: "الشريحة التالية",
|
|
928
|
-
goToSlide: "الانتقال إلى الشريحة {n}",
|
|
929
|
-
chooseDate: "اختر التاريخ",
|
|
930
|
-
previousMonth: "الشهر السابق",
|
|
931
|
-
nextMonth: "الشهر التالي",
|
|
932
|
-
close: "إغلاق",
|
|
933
|
-
copy: "نسخ",
|
|
934
|
-
copied: "تم النسخ",
|
|
935
|
-
chooseFile: "اختر ملفًا",
|
|
936
|
-
noFileChosen: "لم يتم اختيار أي ملف",
|
|
937
|
-
filesSelected: "تم اختيار {count} ملفات",
|
|
938
|
-
resizePanels: "تغيير حجم اللوحات",
|
|
939
|
-
search: "بحث",
|
|
940
|
-
alertError: "خطأ",
|
|
941
|
-
alertWarning: "تحذير",
|
|
942
|
-
alertSuccess: "نجاح",
|
|
943
|
-
alertInfo: "معلومات",
|
|
944
|
-
alertNotice: "إشعار",
|
|
945
|
-
alertMessage: "رسالة",
|
|
946
|
-
remove: "إزالة",
|
|
947
|
-
closeTab: "إغلاق علامة التبويب",
|
|
948
|
-
breadcrumb: "مسار التنقل",
|
|
949
|
-
confirm: "تأكيد",
|
|
950
|
-
cancel: "إلغاء"
|
|
951
|
-
},
|
|
952
|
-
"../assets/locales/de.json": {
|
|
953
|
-
valueMissing: "Dieses Feld ist erforderlich",
|
|
954
|
-
badInput: "Bitte geben Sie einen gültigen Wert ein",
|
|
955
|
-
typeMismatch: "Bitte geben Sie einen gültigen Wert ein",
|
|
956
|
-
patternMismatch: "Bitte halten Sie sich an das angeforderte Format",
|
|
957
|
-
rangeUnderflow: "Der Wert muss mindestens {min} betragen",
|
|
958
|
-
rangeOverflow: "Der Wert darf höchstens {max} betragen",
|
|
959
|
-
stepMismatch: "Der Wert muss ein Vielfaches von {step} sein",
|
|
960
|
-
tooShort: "Muss mindestens {min} betragen",
|
|
961
|
-
tooLong: "Darf höchstens {max} betragen",
|
|
962
|
-
increment: "Wert erhöhen",
|
|
963
|
-
decrement: "Wert verringern",
|
|
964
|
-
clear: "Wert löschen",
|
|
965
|
-
today: "Heute",
|
|
966
|
-
time: "Uhrzeit",
|
|
967
|
-
showPassword: "Passwort anzeigen",
|
|
968
|
-
hidePassword: "Passwort verbergen",
|
|
969
|
-
previousSlide: "Vorherige Folie",
|
|
970
|
-
nextSlide: "Nächste Folie",
|
|
971
|
-
goToSlide: "Zu Folie {n} wechseln",
|
|
972
|
-
chooseDate: "Datum auswählen",
|
|
973
|
-
previousMonth: "Vorheriger Monat",
|
|
974
|
-
nextMonth: "Nächster Monat",
|
|
975
|
-
close: "Schließen",
|
|
976
|
-
copy: "Kopieren",
|
|
977
|
-
copied: "Kopiert",
|
|
978
|
-
chooseFile: "Datei auswählen",
|
|
979
|
-
noFileChosen: "Keine Datei ausgewählt",
|
|
980
|
-
filesSelected: "{count} Dateien ausgewählt",
|
|
981
|
-
resizePanels: "Bereichsgröße ändern",
|
|
982
|
-
search: "Suchen",
|
|
983
|
-
alertError: "Fehler",
|
|
984
|
-
alertWarning: "Warnung",
|
|
985
|
-
alertSuccess: "Erfolg",
|
|
986
|
-
alertInfo: "Information",
|
|
987
|
-
alertNotice: "Hinweis",
|
|
988
|
-
alertMessage: "Nachricht",
|
|
989
|
-
remove: "Entfernen",
|
|
990
|
-
closeTab: "Tab schließen",
|
|
991
|
-
breadcrumb: "Navigationspfad",
|
|
992
|
-
confirm: "Bestätigen",
|
|
993
|
-
cancel: "Abbrechen"
|
|
994
|
-
},
|
|
995
|
-
"../assets/locales/en.json": {
|
|
996
|
-
valueMissing: "This field is required",
|
|
997
|
-
badInput: "Please enter a valid value",
|
|
998
|
-
typeMismatch: "Please enter a valid value",
|
|
999
|
-
patternMismatch: "Please match the requested format",
|
|
1000
|
-
rangeUnderflow: "Value must be at least {min}",
|
|
1001
|
-
rangeOverflow: "Value must be at most {max}",
|
|
1002
|
-
stepMismatch: "Value must be a multiple of {step}",
|
|
1003
|
-
tooShort: "Must be at least {min}",
|
|
1004
|
-
tooLong: "Must be at most {max}",
|
|
1005
|
-
increment: "Increase value",
|
|
1006
|
-
decrement: "Decrease value",
|
|
1007
|
-
clear: "Clear value",
|
|
1008
|
-
today: "Today",
|
|
1009
|
-
time: "Time",
|
|
1010
|
-
showPassword: "Show password",
|
|
1011
|
-
hidePassword: "Hide password",
|
|
1012
|
-
previousSlide: "Previous slide",
|
|
1013
|
-
nextSlide: "Next slide",
|
|
1014
|
-
goToSlide: "Go to slide {n}",
|
|
1015
|
-
chooseDate: "Choose date",
|
|
1016
|
-
previousMonth: "Previous month",
|
|
1017
|
-
nextMonth: "Next month",
|
|
1018
|
-
close: "Close",
|
|
1019
|
-
copy: "Copy",
|
|
1020
|
-
copied: "Copied",
|
|
1021
|
-
chooseFile: "Choose file",
|
|
1022
|
-
noFileChosen: "No file chosen",
|
|
1023
|
-
filesSelected: "{count} files selected",
|
|
1024
|
-
resizePanels: "Resize panels",
|
|
1025
|
-
search: "Search",
|
|
1026
|
-
alertError: "Error",
|
|
1027
|
-
alertWarning: "Warning",
|
|
1028
|
-
alertSuccess: "Success",
|
|
1029
|
-
alertInfo: "Information",
|
|
1030
|
-
alertNotice: "Notice",
|
|
1031
|
-
alertMessage: "Message",
|
|
1032
|
-
remove: "Remove",
|
|
1033
|
-
closeTab: "Close tab",
|
|
1034
|
-
breadcrumb: "Breadcrumb",
|
|
1035
|
-
confirm: "Confirm",
|
|
1036
|
-
cancel: "Cancel"
|
|
1037
|
-
},
|
|
1038
|
-
"../assets/locales/es.json": {
|
|
1039
|
-
valueMissing: "Este campo es obligatorio",
|
|
1040
|
-
badInput: "Introduzca un valor válido",
|
|
1041
|
-
typeMismatch: "Introduzca un valor con el formato correcto",
|
|
1042
|
-
patternMismatch: "Ajuste el valor al formato solicitado",
|
|
1043
|
-
rangeUnderflow: "El valor debe ser como mínimo {min}",
|
|
1044
|
-
rangeOverflow: "El valor debe ser como máximo {max}",
|
|
1045
|
-
stepMismatch: "El valor debe ser múltiplo de {step}",
|
|
1046
|
-
tooShort: "Debe ser como mínimo {min}",
|
|
1047
|
-
tooLong: "Debe ser como máximo {max}",
|
|
1048
|
-
increment: "Aumentar valor",
|
|
1049
|
-
decrement: "Disminuir valor",
|
|
1050
|
-
clear: "Borrar valor",
|
|
1051
|
-
today: "Hoy",
|
|
1052
|
-
time: "Hora",
|
|
1053
|
-
showPassword: "Mostrar contraseña",
|
|
1054
|
-
hidePassword: "Ocultar contraseña",
|
|
1055
|
-
previousSlide: "Diapositiva anterior",
|
|
1056
|
-
nextSlide: "Siguiente diapositiva",
|
|
1057
|
-
goToSlide: "Ir a la diapositiva {n}",
|
|
1058
|
-
chooseDate: "Elegir fecha",
|
|
1059
|
-
previousMonth: "Mes anterior",
|
|
1060
|
-
nextMonth: "Mes siguiente",
|
|
1061
|
-
close: "Cerrar",
|
|
1062
|
-
copy: "Copiar",
|
|
1063
|
-
copied: "Copiado",
|
|
1064
|
-
chooseFile: "Elegir archivo",
|
|
1065
|
-
noFileChosen: "Ningún archivo elegido",
|
|
1066
|
-
filesSelected: "{count} archivos seleccionados",
|
|
1067
|
-
resizePanels: "Cambiar el tamaño de los paneles",
|
|
1068
|
-
search: "Buscar",
|
|
1069
|
-
alertError: "Error",
|
|
1070
|
-
alertWarning: "Advertencia",
|
|
1071
|
-
alertSuccess: "Éxito",
|
|
1072
|
-
alertInfo: "Información",
|
|
1073
|
-
alertNotice: "Aviso",
|
|
1074
|
-
alertMessage: "Mensaje",
|
|
1075
|
-
remove: "Quitar",
|
|
1076
|
-
closeTab: "Cerrar pestaña",
|
|
1077
|
-
breadcrumb: "Ruta de navegación",
|
|
1078
|
-
confirm: "Confirmar",
|
|
1079
|
-
cancel: "Cancelar"
|
|
1080
|
-
},
|
|
1081
|
-
"../assets/locales/fr.json": {
|
|
1082
|
-
valueMissing: "Ce champ est obligatoire",
|
|
1083
|
-
badInput: "Veuillez saisir une valeur valide",
|
|
1084
|
-
typeMismatch: "Veuillez saisir une valeur au format correct",
|
|
1085
|
-
patternMismatch: "Veuillez respecter le format demandé",
|
|
1086
|
-
rangeUnderflow: "La valeur doit être supérieure ou égale à {min}",
|
|
1087
|
-
rangeOverflow: "La valeur doit être inférieure ou égale à {max}",
|
|
1088
|
-
stepMismatch: "La valeur doit être un multiple de {step}",
|
|
1089
|
-
tooShort: "Doit être au moins {min}",
|
|
1090
|
-
tooLong: "Doit être au plus {max}",
|
|
1091
|
-
increment: "Augmenter la valeur",
|
|
1092
|
-
decrement: "Diminuer la valeur",
|
|
1093
|
-
clear: "Effacer la valeur",
|
|
1094
|
-
today: "Aujourd’hui",
|
|
1095
|
-
time: "Heure",
|
|
1096
|
-
showPassword: "Afficher le mot de passe",
|
|
1097
|
-
hidePassword: "Masquer le mot de passe",
|
|
1098
|
-
previousSlide: "Diapositive précédente",
|
|
1099
|
-
nextSlide: "Diapositive suivante",
|
|
1100
|
-
goToSlide: "Aller à la diapositive {n}",
|
|
1101
|
-
chooseDate: "Choisir une date",
|
|
1102
|
-
previousMonth: "Mois précédent",
|
|
1103
|
-
nextMonth: "Mois suivant",
|
|
1104
|
-
close: "Fermer",
|
|
1105
|
-
copy: "Copier",
|
|
1106
|
-
copied: "Copié",
|
|
1107
|
-
chooseFile: "Choisir un fichier",
|
|
1108
|
-
noFileChosen: "Aucun fichier choisi",
|
|
1109
|
-
filesSelected: "{count} fichiers sélectionnés",
|
|
1110
|
-
resizePanels: "Redimensionner les panneaux",
|
|
1111
|
-
search: "Rechercher",
|
|
1112
|
-
alertError: "Erreur",
|
|
1113
|
-
alertWarning: "Avertissement",
|
|
1114
|
-
alertSuccess: "Succès",
|
|
1115
|
-
alertInfo: "Information",
|
|
1116
|
-
alertNotice: "Avis",
|
|
1117
|
-
alertMessage: "Message",
|
|
1118
|
-
remove: "Supprimer",
|
|
1119
|
-
closeTab: "Fermer l'onglet",
|
|
1120
|
-
breadcrumb: "Fil d'Ariane",
|
|
1121
|
-
confirm: "Confirmer",
|
|
1122
|
-
cancel: "Annuler"
|
|
1123
|
-
},
|
|
1124
|
-
"../assets/locales/id.json": {
|
|
1125
|
-
valueMissing: "Kolom ini wajib diisi",
|
|
1126
|
-
badInput: "Masukkan nilai yang valid",
|
|
1127
|
-
typeMismatch: "Masukkan nilai dengan format yang benar",
|
|
1128
|
-
patternMismatch: "Sesuaikan dengan format yang diminta",
|
|
1129
|
-
rangeUnderflow: "Nilai harus minimal {min}",
|
|
1130
|
-
rangeOverflow: "Nilai harus maksimal {max}",
|
|
1131
|
-
stepMismatch: "Nilai harus kelipatan dari {step}",
|
|
1132
|
-
tooShort: "Harus minimal {min}",
|
|
1133
|
-
tooLong: "Harus maksimal {max}",
|
|
1134
|
-
increment: "Tambah nilai",
|
|
1135
|
-
decrement: "Kurangi nilai",
|
|
1136
|
-
clear: "Hapus nilai",
|
|
1137
|
-
today: "Hari ini",
|
|
1138
|
-
time: "Waktu",
|
|
1139
|
-
showPassword: "Tampilkan kata sandi",
|
|
1140
|
-
hidePassword: "Sembunyikan kata sandi",
|
|
1141
|
-
previousSlide: "Slide sebelumnya",
|
|
1142
|
-
nextSlide: "Slide berikutnya",
|
|
1143
|
-
goToSlide: "Buka slide {n}",
|
|
1144
|
-
chooseDate: "Pilih tanggal",
|
|
1145
|
-
previousMonth: "Bulan sebelumnya",
|
|
1146
|
-
nextMonth: "Bulan berikutnya",
|
|
1147
|
-
close: "Tutup",
|
|
1148
|
-
copy: "Salin",
|
|
1149
|
-
copied: "Disalin",
|
|
1150
|
-
chooseFile: "Pilih berkas",
|
|
1151
|
-
noFileChosen: "Tidak ada berkas dipilih",
|
|
1152
|
-
filesSelected: "{count} berkas dipilih",
|
|
1153
|
-
resizePanels: "Ubah ukuran panel",
|
|
1154
|
-
search: "Cari",
|
|
1155
|
-
alertError: "Kesalahan",
|
|
1156
|
-
alertWarning: "Peringatan",
|
|
1157
|
-
alertSuccess: "Berhasil",
|
|
1158
|
-
alertInfo: "Informasi",
|
|
1159
|
-
alertNotice: "Pemberitahuan",
|
|
1160
|
-
alertMessage: "Pesan",
|
|
1161
|
-
remove: "Hapus",
|
|
1162
|
-
closeTab: "Tutup tab",
|
|
1163
|
-
breadcrumb: "Navigasi remah roti",
|
|
1164
|
-
confirm: "Konfirmasi",
|
|
1165
|
-
cancel: "Batal"
|
|
1166
|
-
},
|
|
1167
|
-
"../assets/locales/ja.json": {
|
|
1168
|
-
valueMissing: "この項目は必須です",
|
|
1169
|
-
badInput: "有効な値を入力してください",
|
|
1170
|
-
typeMismatch: "正しい形式の値を入力してください",
|
|
1171
|
-
patternMismatch: "指定された形式で入力してください",
|
|
1172
|
-
rangeUnderflow: "値は{min}以上である必要があります",
|
|
1173
|
-
rangeOverflow: "値は{max}以下である必要があります",
|
|
1174
|
-
stepMismatch: "値は{step}の倍数である必要があります",
|
|
1175
|
-
tooShort: "{min}以上である必要があります",
|
|
1176
|
-
tooLong: "{max}以下である必要があります",
|
|
1177
|
-
increment: "値を増やす",
|
|
1178
|
-
decrement: "値を減らす",
|
|
1179
|
-
clear: "値をクリア",
|
|
1180
|
-
today: "今日",
|
|
1181
|
-
time: "時刻",
|
|
1182
|
-
showPassword: "パスワードを表示",
|
|
1183
|
-
hidePassword: "パスワードを隠す",
|
|
1184
|
-
previousSlide: "前のスライド",
|
|
1185
|
-
nextSlide: "次のスライド",
|
|
1186
|
-
goToSlide: "スライド{n}に移動",
|
|
1187
|
-
chooseDate: "日付を選択",
|
|
1188
|
-
previousMonth: "前月",
|
|
1189
|
-
nextMonth: "翌月",
|
|
1190
|
-
close: "閉じる",
|
|
1191
|
-
copy: "コピー",
|
|
1192
|
-
copied: "コピーしました",
|
|
1193
|
-
chooseFile: "ファイルを選択",
|
|
1194
|
-
noFileChosen: "ファイルが選択されていません",
|
|
1195
|
-
filesSelected: "{count}個のファイルを選択しました",
|
|
1196
|
-
resizePanels: "パネルのサイズ変更",
|
|
1197
|
-
search: "検索",
|
|
1198
|
-
alertError: "エラー",
|
|
1199
|
-
alertWarning: "警告",
|
|
1200
|
-
alertSuccess: "完了",
|
|
1201
|
-
alertInfo: "お知らせ",
|
|
1202
|
-
alertNotice: "通知",
|
|
1203
|
-
alertMessage: "メッセージ",
|
|
1204
|
-
remove: "削除",
|
|
1205
|
-
closeTab: "タブを閉じる",
|
|
1206
|
-
breadcrumb: "パンくずリスト",
|
|
1207
|
-
confirm: "OK",
|
|
1208
|
-
cancel: "キャンセル"
|
|
1209
|
-
},
|
|
1210
|
-
"../assets/locales/ko.json": {
|
|
1211
|
-
valueMissing: "필수 항목입니다",
|
|
1212
|
-
badInput: "올바른 값을 입력하세요",
|
|
1213
|
-
typeMismatch: "올바른 형식의 값을 입력하세요",
|
|
1214
|
-
patternMismatch: "요청된 형식에 맞게 입력하세요",
|
|
1215
|
-
rangeUnderflow: "값은 {min} 이상이어야 합니다",
|
|
1216
|
-
rangeOverflow: "값은 {max} 이하여야 합니다",
|
|
1217
|
-
stepMismatch: "값은 {step}의 배수여야 합니다",
|
|
1218
|
-
tooShort: "최소 {min} 이상이어야 합니다",
|
|
1219
|
-
tooLong: "최대 {max} 이하여야 합니다",
|
|
1220
|
-
increment: "값 증가",
|
|
1221
|
-
decrement: "값 감소",
|
|
1222
|
-
clear: "값 지우기",
|
|
1223
|
-
today: "오늘",
|
|
1224
|
-
time: "시간",
|
|
1225
|
-
showPassword: "비밀번호 표시",
|
|
1226
|
-
hidePassword: "비밀번호 숨기기",
|
|
1227
|
-
previousSlide: "이전 슬라이드",
|
|
1228
|
-
nextSlide: "다음 슬라이드",
|
|
1229
|
-
goToSlide: "{n}번 슬라이드로 이동",
|
|
1230
|
-
chooseDate: "날짜 선택",
|
|
1231
|
-
previousMonth: "이전 달",
|
|
1232
|
-
nextMonth: "다음 달",
|
|
1233
|
-
close: "닫기",
|
|
1234
|
-
copy: "복사",
|
|
1235
|
-
copied: "복사됨",
|
|
1236
|
-
chooseFile: "파일 선택",
|
|
1237
|
-
noFileChosen: "선택된 파일 없음",
|
|
1238
|
-
filesSelected: "{count}개 파일 선택됨",
|
|
1239
|
-
resizePanels: "패널 크기 조절",
|
|
1240
|
-
search: "검색",
|
|
1241
|
-
alertError: "오류",
|
|
1242
|
-
alertWarning: "경고",
|
|
1243
|
-
alertSuccess: "완료",
|
|
1244
|
-
alertInfo: "안내",
|
|
1245
|
-
alertNotice: "알림",
|
|
1246
|
-
alertMessage: "메시지",
|
|
1247
|
-
remove: "제거",
|
|
1248
|
-
closeTab: "탭 닫기",
|
|
1249
|
-
breadcrumb: "탐색 경로",
|
|
1250
|
-
confirm: "확인",
|
|
1251
|
-
cancel: "취소"
|
|
1252
|
-
},
|
|
1253
|
-
"../assets/locales/pt-BR.json": {
|
|
1254
|
-
valueMissing: "Este campo é obrigatório",
|
|
1255
|
-
badInput: "Insira um valor válido",
|
|
1256
|
-
typeMismatch: "Insira um valor no formato correto",
|
|
1257
|
-
patternMismatch: "Siga o formato solicitado",
|
|
1258
|
-
rangeUnderflow: "O valor deve ser no mínimo {min}",
|
|
1259
|
-
rangeOverflow: "O valor deve ser no máximo {max}",
|
|
1260
|
-
stepMismatch: "O valor deve ser um múltiplo de {step}",
|
|
1261
|
-
tooShort: "Deve ser no mínimo {min}",
|
|
1262
|
-
tooLong: "Deve ser no máximo {max}",
|
|
1263
|
-
increment: "Aumentar valor",
|
|
1264
|
-
decrement: "Diminuir valor",
|
|
1265
|
-
clear: "Limpar valor",
|
|
1266
|
-
today: "Hoje",
|
|
1267
|
-
time: "Hora",
|
|
1268
|
-
showPassword: "Mostrar senha",
|
|
1269
|
-
hidePassword: "Ocultar senha",
|
|
1270
|
-
previousSlide: "Slide anterior",
|
|
1271
|
-
nextSlide: "Próximo slide",
|
|
1272
|
-
goToSlide: "Ir para o slide {n}",
|
|
1273
|
-
chooseDate: "Escolher data",
|
|
1274
|
-
previousMonth: "Mês anterior",
|
|
1275
|
-
nextMonth: "Próximo mês",
|
|
1276
|
-
close: "Fechar",
|
|
1277
|
-
copy: "Copiar",
|
|
1278
|
-
copied: "Copiado",
|
|
1279
|
-
chooseFile: "Escolher arquivo",
|
|
1280
|
-
noFileChosen: "Nenhum arquivo escolhido",
|
|
1281
|
-
filesSelected: "{count} arquivos selecionados",
|
|
1282
|
-
resizePanels: "Redimensionar painéis",
|
|
1283
|
-
search: "Pesquisar",
|
|
1284
|
-
alertError: "Erro",
|
|
1285
|
-
alertWarning: "Aviso",
|
|
1286
|
-
alertSuccess: "Sucesso",
|
|
1287
|
-
alertInfo: "Informação",
|
|
1288
|
-
alertNotice: "Nota",
|
|
1289
|
-
alertMessage: "Mensagem",
|
|
1290
|
-
remove: "Remover",
|
|
1291
|
-
closeTab: "Fechar aba",
|
|
1292
|
-
breadcrumb: "Trilha de navegação",
|
|
1293
|
-
confirm: "Confirmar",
|
|
1294
|
-
cancel: "Cancelar"
|
|
1295
|
-
},
|
|
1296
|
-
"../assets/locales/ru.json": {
|
|
1297
|
-
valueMissing: "Это поле обязательно для заполнения",
|
|
1298
|
-
badInput: "Введите допустимое значение",
|
|
1299
|
-
typeMismatch: "Введите значение в правильном формате",
|
|
1300
|
-
patternMismatch: "Введите значение в требуемом формате",
|
|
1301
|
-
rangeUnderflow: "Значение должно быть не менее {min}",
|
|
1302
|
-
rangeOverflow: "Значение должно быть не более {max}",
|
|
1303
|
-
stepMismatch: "Значение должно быть кратно {step}",
|
|
1304
|
-
tooShort: "Должно быть не менее {min}",
|
|
1305
|
-
tooLong: "Должно быть не более {max}",
|
|
1306
|
-
increment: "Увеличить значение",
|
|
1307
|
-
decrement: "Уменьшить значение",
|
|
1308
|
-
clear: "Очистить значение",
|
|
1309
|
-
today: "Сегодня",
|
|
1310
|
-
time: "Время",
|
|
1311
|
-
showPassword: "Показать пароль",
|
|
1312
|
-
hidePassword: "Скрыть пароль",
|
|
1313
|
-
previousSlide: "Предыдущий слайд",
|
|
1314
|
-
nextSlide: "Следующий слайд",
|
|
1315
|
-
goToSlide: "Перейти к слайду {n}",
|
|
1316
|
-
chooseDate: "Выбрать дату",
|
|
1317
|
-
previousMonth: "Предыдущий месяц",
|
|
1318
|
-
nextMonth: "Следующий месяц",
|
|
1319
|
-
close: "Закрыть",
|
|
1320
|
-
copy: "Копировать",
|
|
1321
|
-
copied: "Скопировано",
|
|
1322
|
-
chooseFile: "Выбрать файл",
|
|
1323
|
-
noFileChosen: "Файл не выбран",
|
|
1324
|
-
filesSelected: "Выбрано файлов: {count}",
|
|
1325
|
-
resizePanels: "Изменить размер панелей",
|
|
1326
|
-
search: "Поиск",
|
|
1327
|
-
alertError: "Ошибка",
|
|
1328
|
-
alertWarning: "Предупреждение",
|
|
1329
|
-
alertSuccess: "Успешно",
|
|
1330
|
-
alertInfo: "Информация",
|
|
1331
|
-
alertNotice: "Уведомление",
|
|
1332
|
-
alertMessage: "Сообщение",
|
|
1333
|
-
remove: "Удалить",
|
|
1334
|
-
closeTab: "Закрыть вкладку",
|
|
1335
|
-
breadcrumb: "Навигационная цепочка",
|
|
1336
|
-
confirm: "Подтвердить",
|
|
1337
|
-
cancel: "Отмена"
|
|
1338
|
-
},
|
|
1339
|
-
"../assets/locales/th.json": {
|
|
1340
|
-
valueMissing: "จำเป็นต้องกรอกข้อมูลนี้",
|
|
1341
|
-
badInput: "กรุณากรอกค่าที่ถูกต้อง",
|
|
1342
|
-
typeMismatch: "กรุณากรอกค่าให้ถูกรูปแบบ",
|
|
1343
|
-
patternMismatch: "กรุณากรอกให้ตรงตามรูปแบบที่กำหนด",
|
|
1344
|
-
rangeUnderflow: "ค่าต้องมากกว่าหรือเท่ากับ {min}",
|
|
1345
|
-
rangeOverflow: "ค่าต้องน้อยกว่าหรือเท่ากับ {max}",
|
|
1346
|
-
stepMismatch: "ค่าต้องเป็นจำนวนทวีคูณของ {step}",
|
|
1347
|
-
tooShort: "ต้องมีอย่างน้อย {min}",
|
|
1348
|
-
tooLong: "ต้องไม่เกิน {max}",
|
|
1349
|
-
increment: "เพิ่มค่า",
|
|
1350
|
-
decrement: "ลดค่า",
|
|
1351
|
-
clear: "ล้างค่า",
|
|
1352
|
-
today: "วันนี้",
|
|
1353
|
-
time: "เวลา",
|
|
1354
|
-
showPassword: "แสดงรหัสผ่าน",
|
|
1355
|
-
hidePassword: "ซ่อนรหัสผ่าน",
|
|
1356
|
-
previousSlide: "สไลด์ก่อนหน้า",
|
|
1357
|
-
nextSlide: "สไลด์ถัดไป",
|
|
1358
|
-
goToSlide: "ไปที่สไลด์ที่ {n}",
|
|
1359
|
-
chooseDate: "เลือกวันที่",
|
|
1360
|
-
previousMonth: "เดือนก่อนหน้า",
|
|
1361
|
-
nextMonth: "เดือนถัดไป",
|
|
1362
|
-
close: "ปิด",
|
|
1363
|
-
copy: "คัดลอก",
|
|
1364
|
-
copied: "คัดลอกแล้ว",
|
|
1365
|
-
chooseFile: "เลือกไฟล์",
|
|
1366
|
-
noFileChosen: "ยังไม่ได้เลือกไฟล์",
|
|
1367
|
-
filesSelected: "เลือกแล้ว {count} ไฟล์",
|
|
1368
|
-
resizePanels: "ปรับขนาดแผง",
|
|
1369
|
-
search: "ค้นหา",
|
|
1370
|
-
alertError: "ข้อผิดพลาด",
|
|
1371
|
-
alertWarning: "คำเตือน",
|
|
1372
|
-
alertSuccess: "สำเร็จ",
|
|
1373
|
-
alertInfo: "ข้อมูล",
|
|
1374
|
-
alertNotice: "ประกาศ",
|
|
1375
|
-
alertMessage: "ข้อความ",
|
|
1376
|
-
remove: "ลบ",
|
|
1377
|
-
closeTab: "ปิดแท็บ",
|
|
1378
|
-
breadcrumb: "เส้นทางการนำทาง",
|
|
1379
|
-
confirm: "ยืนยัน",
|
|
1380
|
-
cancel: "ยกเลิก"
|
|
1381
|
-
},
|
|
1382
|
-
"../assets/locales/vi.json": {
|
|
1383
|
-
valueMissing: "Trường này là bắt buộc",
|
|
1384
|
-
badInput: "Vui lòng nhập giá trị hợp lệ",
|
|
1385
|
-
typeMismatch: "Vui lòng nhập giá trị đúng định dạng",
|
|
1386
|
-
patternMismatch: "Vui lòng nhập đúng định dạng yêu cầu",
|
|
1387
|
-
rangeUnderflow: "Giá trị phải lớn hơn hoặc bằng {min}",
|
|
1388
|
-
rangeOverflow: "Giá trị phải nhỏ hơn hoặc bằng {max}",
|
|
1389
|
-
stepMismatch: "Giá trị phải là bội số của {step}",
|
|
1390
|
-
tooShort: "Phải lớn hơn hoặc bằng {min}",
|
|
1391
|
-
tooLong: "Phải nhỏ hơn hoặc bằng {max}",
|
|
1392
|
-
increment: "Tăng giá trị",
|
|
1393
|
-
decrement: "Giảm giá trị",
|
|
1394
|
-
clear: "Xóa giá trị",
|
|
1395
|
-
today: "Hôm nay",
|
|
1396
|
-
time: "Giờ",
|
|
1397
|
-
showPassword: "Hiện mật khẩu",
|
|
1398
|
-
hidePassword: "Ẩn mật khẩu",
|
|
1399
|
-
previousSlide: "Slide trước",
|
|
1400
|
-
nextSlide: "Slide sau",
|
|
1401
|
-
goToSlide: "Đi đến slide {n}",
|
|
1402
|
-
chooseDate: "Chọn ngày",
|
|
1403
|
-
previousMonth: "Tháng trước",
|
|
1404
|
-
nextMonth: "Tháng sau",
|
|
1405
|
-
close: "Đóng",
|
|
1406
|
-
copy: "Sao chép",
|
|
1407
|
-
copied: "Đã sao chép",
|
|
1408
|
-
chooseFile: "Chọn tệp",
|
|
1409
|
-
noFileChosen: "Chưa chọn tệp nào",
|
|
1410
|
-
filesSelected: "Đã chọn {count} tệp",
|
|
1411
|
-
resizePanels: "Thay đổi kích thước bảng",
|
|
1412
|
-
search: "Tìm kiếm",
|
|
1413
|
-
alertError: "Lỗi",
|
|
1414
|
-
alertWarning: "Cảnh báo",
|
|
1415
|
-
alertSuccess: "Thành công",
|
|
1416
|
-
alertInfo: "Thông tin",
|
|
1417
|
-
alertNotice: "Lưu ý",
|
|
1418
|
-
alertMessage: "Thông báo",
|
|
1419
|
-
remove: "Xóa",
|
|
1420
|
-
closeTab: "Đóng tab",
|
|
1421
|
-
breadcrumb: "Đường dẫn điều hướng",
|
|
1422
|
-
confirm: "Xác nhận",
|
|
1423
|
-
cancel: "Hủy"
|
|
1424
|
-
},
|
|
1425
|
-
"../assets/locales/zh-CN.json": {
|
|
1426
|
-
valueMissing: "此项为必填项",
|
|
1427
|
-
badInput: "请输入有效的值",
|
|
1428
|
-
typeMismatch: "请输入正确格式的值",
|
|
1429
|
-
patternMismatch: "请按照要求的格式输入",
|
|
1430
|
-
rangeUnderflow: "值必须大于或等于{min}",
|
|
1431
|
-
rangeOverflow: "值必须小于或等于{max}",
|
|
1432
|
-
stepMismatch: "值必须是{step}的倍数",
|
|
1433
|
-
tooShort: "至少需要{min}",
|
|
1434
|
-
tooLong: "最多不能超过{max}",
|
|
1435
|
-
increment: "增加值",
|
|
1436
|
-
decrement: "减少值",
|
|
1437
|
-
clear: "清除值",
|
|
1438
|
-
today: "今天",
|
|
1439
|
-
time: "时间",
|
|
1440
|
-
showPassword: "显示密码",
|
|
1441
|
-
hidePassword: "隐藏密码",
|
|
1442
|
-
previousSlide: "上一张幻灯片",
|
|
1443
|
-
nextSlide: "下一张幻灯片",
|
|
1444
|
-
goToSlide: "转到幻灯片{n}",
|
|
1445
|
-
chooseDate: "选择日期",
|
|
1446
|
-
previousMonth: "上个月",
|
|
1447
|
-
nextMonth: "下个月",
|
|
1448
|
-
close: "关闭",
|
|
1449
|
-
copy: "复制",
|
|
1450
|
-
copied: "已复制",
|
|
1451
|
-
chooseFile: "选择文件",
|
|
1452
|
-
noFileChosen: "未选择文件",
|
|
1453
|
-
filesSelected: "已选择{count}个文件",
|
|
1454
|
-
resizePanels: "调整面板大小",
|
|
1455
|
-
search: "搜索",
|
|
1456
|
-
alertError: "错误",
|
|
1457
|
-
alertWarning: "警告",
|
|
1458
|
-
alertSuccess: "成功",
|
|
1459
|
-
alertInfo: "信息",
|
|
1460
|
-
alertNotice: "提示",
|
|
1461
|
-
alertMessage: "消息",
|
|
1462
|
-
remove: "移除",
|
|
1463
|
-
closeTab: "关闭标签页",
|
|
1464
|
-
breadcrumb: "面包屑导航",
|
|
1465
|
-
confirm: "确定",
|
|
1466
|
-
cancel: "取消"
|
|
1467
|
-
},
|
|
1468
|
-
"../assets/locales/zh-TW.json": {
|
|
1469
|
-
valueMissing: "此欄位為必填",
|
|
1470
|
-
badInput: "請輸入有效的值",
|
|
1471
|
-
typeMismatch: "請輸入正確格式的值",
|
|
1472
|
-
patternMismatch: "請依照要求的格式輸入",
|
|
1473
|
-
rangeUnderflow: "值必須大於或等於{min}",
|
|
1474
|
-
rangeOverflow: "值必須小於或等於{max}",
|
|
1475
|
-
stepMismatch: "值必須是{step}的倍數",
|
|
1476
|
-
tooShort: "至少需要{min}",
|
|
1477
|
-
tooLong: "最多不能超過{max}",
|
|
1478
|
-
increment: "增加值",
|
|
1479
|
-
decrement: "減少值",
|
|
1480
|
-
clear: "清除值",
|
|
1481
|
-
today: "今天",
|
|
1482
|
-
time: "時間",
|
|
1483
|
-
showPassword: "顯示密碼",
|
|
1484
|
-
hidePassword: "隱藏密碼",
|
|
1485
|
-
previousSlide: "上一張投影片",
|
|
1486
|
-
nextSlide: "下一張投影片",
|
|
1487
|
-
goToSlide: "前往投影片{n}",
|
|
1488
|
-
chooseDate: "選擇日期",
|
|
1489
|
-
previousMonth: "上個月",
|
|
1490
|
-
nextMonth: "下個月",
|
|
1491
|
-
close: "關閉",
|
|
1492
|
-
copy: "複製",
|
|
1493
|
-
copied: "已複製",
|
|
1494
|
-
chooseFile: "選擇檔案",
|
|
1495
|
-
noFileChosen: "未選擇檔案",
|
|
1496
|
-
filesSelected: "已選擇{count}個檔案",
|
|
1497
|
-
resizePanels: "調整面板大小",
|
|
1498
|
-
search: "搜尋",
|
|
1499
|
-
alertError: "錯誤",
|
|
1500
|
-
alertWarning: "警告",
|
|
1501
|
-
alertSuccess: "成功",
|
|
1502
|
-
alertInfo: "資訊",
|
|
1503
|
-
alertNotice: "提示",
|
|
1504
|
-
alertMessage: "訊息",
|
|
1505
|
-
remove: "移除",
|
|
1506
|
-
closeTab: "關閉分頁",
|
|
1507
|
-
breadcrumb: "麵包屑導覽",
|
|
1508
|
-
confirm: "確定",
|
|
1509
|
-
cancel: "取消"
|
|
1510
|
-
}
|
|
1511
|
-
})).map(([e, t]) => [(e.split("/").pop()?.replace(".json", "") || "").toLowerCase(), t])), d = /* @__PURE__ */ new Map();
|
|
1512
|
-
function f() {
|
|
1513
|
-
return typeof document < "u" && document.documentElement?.lang ? document.documentElement.lang : typeof window < "u" && typeof navigator < "u" && navigator.language ? navigator.language : "en";
|
|
1514
|
-
}
|
|
1515
|
-
var p = f(), m = {
|
|
1516
|
-
"zh-hant": "zh-tw",
|
|
1517
|
-
"zh-hk": "zh-tw",
|
|
1518
|
-
"zh-mo": "zh-tw",
|
|
1519
|
-
zh: "zh-cn",
|
|
1520
|
-
pt: "pt-br"
|
|
1521
|
-
};
|
|
1522
|
-
function h(e) {
|
|
1523
|
-
let t = e.toLowerCase().split("-"), n = t.map((e, n) => t.slice(0, t.length - n).join("-")), r = n.find((e) => e in m), i = r ? [
|
|
1524
|
-
...n,
|
|
1525
|
-
m[r],
|
|
1526
|
-
"en"
|
|
1527
|
-
] : [...n, "en"];
|
|
1528
|
-
return [...new Set(i)];
|
|
1529
|
-
}
|
|
1530
|
-
function g(e, t) {
|
|
1531
|
-
return t ? e.replace(/\{(\w+)\}/g, (e, n) => t[n] == null ? `{${n}}` : String(t[n])) : e;
|
|
1532
|
-
}
|
|
1533
|
-
function _(e, t) {
|
|
1534
|
-
for (let n of h(e)) {
|
|
1535
|
-
let e = d.get(n)?.[t] ?? u.get(n)?.[t];
|
|
1536
|
-
if (e) return e;
|
|
1537
|
-
}
|
|
1538
|
-
return u.get("en")[t];
|
|
1539
|
-
}
|
|
1540
|
-
var v = /* @__PURE__ */ new Map(), y = class {
|
|
1541
|
-
constructor() {}
|
|
1542
|
-
static set(e) {
|
|
1543
|
-
p = e;
|
|
1544
|
-
}
|
|
1545
|
-
static get() {
|
|
1546
|
-
return p;
|
|
1547
|
-
}
|
|
1548
|
-
static register(e, t) {
|
|
1549
|
-
let n = e.toLowerCase(), r = d.get(n) ?? u.get(n) ?? u.get("en");
|
|
1550
|
-
d.set(n, {
|
|
1551
|
-
...r,
|
|
1552
|
-
...t
|
|
1553
|
-
});
|
|
1554
|
-
}
|
|
1555
|
-
static getValue(e, t) {
|
|
1556
|
-
return g(_(p, e), t);
|
|
1557
|
-
}
|
|
1558
|
-
static namespace(e) {
|
|
1559
|
-
let t = (t, n, r) => {
|
|
1560
|
-
let i = v.get(e);
|
|
1561
|
-
for (let e of h(t || p)) {
|
|
1562
|
-
let t = i?.get(e)?.[n];
|
|
1563
|
-
if (t) return g(t, r);
|
|
1564
|
-
}
|
|
1565
|
-
return n;
|
|
1566
|
-
};
|
|
1567
|
-
return {
|
|
1568
|
-
name: e,
|
|
1569
|
-
register(t, n) {
|
|
1570
|
-
let r = v.get(e) ?? /* @__PURE__ */ new Map(), i = t.toLowerCase();
|
|
1571
|
-
r.set(i, {
|
|
1572
|
-
...r.get(i),
|
|
1573
|
-
...n
|
|
1574
|
-
}), v.set(e, r);
|
|
1575
|
-
},
|
|
1576
|
-
text: (e, n) => t(void 0, e, n),
|
|
1577
|
-
textIn: t
|
|
1578
|
-
};
|
|
1579
|
-
}
|
|
1580
|
-
};
|
|
912
|
+
`;
|
|
1581
913
|
//#endregion
|
|
1582
914
|
//#region src/renderers/format.ts
|
|
1583
|
-
function
|
|
1584
|
-
return e == null ? "" : typeof t == "function" ? t(e) :
|
|
915
|
+
function g(e, t) {
|
|
916
|
+
return e == null ? "" : typeof t == "function" ? t(e) : _(t) ? y(e, t) : v(e, t);
|
|
1585
917
|
}
|
|
1586
|
-
function
|
|
918
|
+
function _(e) {
|
|
1587
919
|
return /[yMdHhms]/.test(e);
|
|
1588
920
|
}
|
|
1589
|
-
function
|
|
921
|
+
function v(e, t) {
|
|
1590
922
|
let n = typeof e == "number" ? e : Number(e);
|
|
1591
923
|
if (isNaN(n)) return String(e);
|
|
1592
|
-
let r = t.endsWith("%"), i = t.match(/^([^#0.,%]+)/), a = i ? i[1] : "", o = t.replace(/^[^#0.,%]+/, "").replace(/%$/, ""), s = o.match(/\.([0#]+)$/), c = s ? s[1].length : 0,
|
|
924
|
+
let r = t.endsWith("%"), i = t.match(/^([^#0.,%]+)/), a = i ? i[1] : "", o = t.replace(/^[^#0.,%]+/, "").replace(/%$/, ""), s = o.match(/\.([0#]+)$/), c = s ? s[1].length : 0, u = {
|
|
1593
925
|
minimumFractionDigits: c,
|
|
1594
926
|
maximumFractionDigits: c,
|
|
1595
927
|
useGrouping: o.includes(",")
|
|
1596
|
-
},
|
|
1597
|
-
return r ?
|
|
1598
|
-
...
|
|
928
|
+
}, d;
|
|
929
|
+
return r ? d = new Intl.NumberFormat(l.get(), {
|
|
930
|
+
...u,
|
|
1599
931
|
style: "percent"
|
|
1600
|
-
}).format(n) : (
|
|
932
|
+
}).format(n) : (d = new Intl.NumberFormat(l.get(), u).format(n), a && (d = a + d)), d + "";
|
|
1601
933
|
}
|
|
1602
|
-
function
|
|
934
|
+
function y(e, t) {
|
|
1603
935
|
let n;
|
|
1604
936
|
if (e instanceof Date) n = e;
|
|
1605
937
|
else if (typeof e == "string" || typeof e == "number") n = new Date(e);
|
|
@@ -1609,43 +941,27 @@ function C(e, t) {
|
|
|
1609
941
|
return t.replace("yyyy", r).replace("yy", i).replace("MM", a).replace("dd", o).replace("HH", s).replace("hh", c).replace("mm", l).replace("ss", u);
|
|
1610
942
|
}
|
|
1611
943
|
//#endregion
|
|
1612
|
-
//#region node_modules/@iyulab/components/dist/utilities/format.js
|
|
1613
|
-
function w(e) {
|
|
1614
|
-
let [t, n, r] = e.split("-").map(Number);
|
|
1615
|
-
return Number.isNaN(t) || Number.isNaN(n) || Number.isNaN(r) ? new Date(e) : new Date(t, n - 1, r);
|
|
1616
|
-
}
|
|
1617
|
-
function T(e) {
|
|
1618
|
-
return typeof e == "string" ? w(e) : e;
|
|
1619
|
-
}
|
|
1620
|
-
function E(e, t, n) {
|
|
1621
|
-
return new Intl.NumberFormat(n ?? y.get(), t).format(e);
|
|
1622
|
-
}
|
|
1623
|
-
function D(e, t, n) {
|
|
1624
|
-
let r = T(e);
|
|
1625
|
-
return Number.isNaN(r.getTime()) ? String(e) : new Intl.DateTimeFormat(n ?? y.get(), t).format(r);
|
|
1626
|
-
}
|
|
1627
|
-
//#endregion
|
|
1628
944
|
//#region src/renderers/cell-renderer.ts
|
|
1629
|
-
function
|
|
1630
|
-
return n.render ? n.render(e, t, n) : n.format ? typeof n.format == "function" ? n.format(e, t, n) :
|
|
945
|
+
function b(e, t, n) {
|
|
946
|
+
return n.render ? n.render(e, t, n) : n.format ? typeof n.format == "function" ? n.format(e, t, n) : g(e, n.format) : x(e, n);
|
|
1631
947
|
}
|
|
1632
|
-
function
|
|
948
|
+
function x(e, t) {
|
|
1633
949
|
if (e == null) return "";
|
|
1634
950
|
switch (t.type) {
|
|
1635
|
-
case "number": return
|
|
951
|
+
case "number": return w(e);
|
|
1636
952
|
case "boolean": return i`<span class="ft-bool">${e ? "✔" : ""}</span>`;
|
|
1637
|
-
case "date": return
|
|
1638
|
-
case "datetime": return
|
|
1639
|
-
case "select": return
|
|
953
|
+
case "date": return T(e);
|
|
954
|
+
case "datetime": return E(e);
|
|
955
|
+
case "select": return S(e, t);
|
|
1640
956
|
default: return String(e);
|
|
1641
957
|
}
|
|
1642
958
|
}
|
|
1643
|
-
function
|
|
959
|
+
function S(e, t) {
|
|
1644
960
|
if (!t.options || t.options.length === 0 || typeof t.options[0] == "string") return e == null ? "" : String(e);
|
|
1645
961
|
let n = t.options.find((t) => t.value === e);
|
|
1646
962
|
return n ? n.label : e == null ? "" : String(e);
|
|
1647
963
|
}
|
|
1648
|
-
var
|
|
964
|
+
var C = {
|
|
1649
965
|
year: "numeric",
|
|
1650
966
|
month: "numeric",
|
|
1651
967
|
day: "numeric",
|
|
@@ -1653,19 +969,19 @@ var ne = {
|
|
|
1653
969
|
minute: "numeric",
|
|
1654
970
|
second: "numeric"
|
|
1655
971
|
};
|
|
1656
|
-
function
|
|
1657
|
-
return typeof e == "number" ? Number.isInteger(e) ?
|
|
972
|
+
function w(e) {
|
|
973
|
+
return typeof e == "number" ? Number.isInteger(e) ? d(e) : d(e, { minimumFractionDigits: 1 }) : String(e);
|
|
1658
974
|
}
|
|
1659
|
-
function
|
|
1660
|
-
return e instanceof Date || typeof e == "string" ?
|
|
975
|
+
function T(e) {
|
|
976
|
+
return e instanceof Date || typeof e == "string" ? u(e) : String(e);
|
|
1661
977
|
}
|
|
1662
|
-
function
|
|
1663
|
-
return e instanceof Date || typeof e == "string" ?
|
|
978
|
+
function E(e) {
|
|
979
|
+
return e instanceof Date || typeof e == "string" ? u(e, C) : String(e);
|
|
1664
980
|
}
|
|
1665
981
|
//#endregion
|
|
1666
982
|
//#region src/locale.ts
|
|
1667
|
-
var
|
|
1668
|
-
|
|
983
|
+
var D = l.namespace("flex-table");
|
|
984
|
+
D.register("en", {
|
|
1669
985
|
showHiddenColumns: "Show hidden column(s)",
|
|
1670
986
|
columnMenu: "Column menu",
|
|
1671
987
|
cellActions: "Cell actions",
|
|
@@ -1718,7 +1034,7 @@ k.register("en", {
|
|
|
1718
1034
|
booleanTrue: "True",
|
|
1719
1035
|
booleanFalse: "False",
|
|
1720
1036
|
dropFileToImport: "Drop file to import (.xlsx / .csv)"
|
|
1721
|
-
}),
|
|
1037
|
+
}), D.register("ko", {
|
|
1722
1038
|
showHiddenColumns: "숨긴 열 보기",
|
|
1723
1039
|
columnMenu: "열 메뉴",
|
|
1724
1040
|
cellActions: "셀 작업",
|
|
@@ -1772,10 +1088,10 @@ k.register("en", {
|
|
|
1772
1088
|
booleanFalse: "거짓",
|
|
1773
1089
|
dropFileToImport: "가져올 파일을 놓으세요 (.xlsx / .csv)"
|
|
1774
1090
|
});
|
|
1775
|
-
var
|
|
1091
|
+
var O = (e, t) => D.text(e, t);
|
|
1776
1092
|
//#endregion
|
|
1777
1093
|
//#region src/core/selection.ts
|
|
1778
|
-
function
|
|
1094
|
+
function ee(e) {
|
|
1779
1095
|
return {
|
|
1780
1096
|
startRow: Math.min(e.startRow, e.endRow),
|
|
1781
1097
|
startCol: Math.min(e.startCol, e.endCol),
|
|
@@ -1783,7 +1099,7 @@ function oe(e) {
|
|
|
1783
1099
|
endCol: Math.max(e.startCol, e.endCol)
|
|
1784
1100
|
};
|
|
1785
1101
|
}
|
|
1786
|
-
var
|
|
1102
|
+
var te = class {
|
|
1787
1103
|
constructor() {
|
|
1788
1104
|
this.activeCell = null, this.rangeAnchor = null, this.range = null, this.extraRanges = [], this._rowCount = 0, this._colCount = 0;
|
|
1789
1105
|
}
|
|
@@ -1810,7 +1126,7 @@ var se = class {
|
|
|
1810
1126
|
return e < 0 || e >= this._rowCount || t < 0 || t >= this._colCount ? this.activeCell : (!this.rangeAnchor && this.activeCell && (this.rangeAnchor = { ...this.activeCell }), this.activeCell = {
|
|
1811
1127
|
row: e,
|
|
1812
1128
|
col: t
|
|
1813
|
-
}, this.rangeAnchor && (this.range =
|
|
1129
|
+
}, this.rangeAnchor && (this.range = ee({
|
|
1814
1130
|
startRow: this.rangeAnchor.row,
|
|
1815
1131
|
startCol: this.rangeAnchor.col,
|
|
1816
1132
|
endRow: e,
|
|
@@ -1881,7 +1197,7 @@ var se = class {
|
|
|
1881
1197
|
shiftMoveRight() {
|
|
1882
1198
|
return this.activeCell ? this.setActiveWithRange(this.activeCell.row, this.activeCell.col + 1) : null;
|
|
1883
1199
|
}
|
|
1884
|
-
},
|
|
1200
|
+
}, ne = class {
|
|
1885
1201
|
constructor() {
|
|
1886
1202
|
this.current = null;
|
|
1887
1203
|
}
|
|
@@ -1902,7 +1218,7 @@ var se = class {
|
|
|
1902
1218
|
let e = this.current;
|
|
1903
1219
|
return this.current = null, e;
|
|
1904
1220
|
}
|
|
1905
|
-
},
|
|
1221
|
+
}, k = class {
|
|
1906
1222
|
constructor() {
|
|
1907
1223
|
this._selected = /* @__PURE__ */ new Set(), this._mode = "multi", this._rowCount = 0;
|
|
1908
1224
|
}
|
|
@@ -1963,7 +1279,7 @@ var se = class {
|
|
|
1963
1279
|
};
|
|
1964
1280
|
//#endregion
|
|
1965
1281
|
//#region src/core/filtering.ts
|
|
1966
|
-
function
|
|
1282
|
+
function re(e, t, n) {
|
|
1967
1283
|
if (t.length === 0) return Array.from({ length: e.length }, (e, t) => t);
|
|
1968
1284
|
let r = [];
|
|
1969
1285
|
for (let i = 0; i < e.length; i++) {
|
|
@@ -1982,9 +1298,9 @@ function le(e, t, n) {
|
|
|
1982
1298
|
}
|
|
1983
1299
|
//#endregion
|
|
1984
1300
|
//#region src/core/undo.ts
|
|
1985
|
-
var
|
|
1301
|
+
var ie = 100, A = class {
|
|
1986
1302
|
constructor() {
|
|
1987
|
-
this._undoStack = [], this._redoStack = [], this._maxSize =
|
|
1303
|
+
this._undoStack = [], this._redoStack = [], this._maxSize = ie;
|
|
1988
1304
|
}
|
|
1989
1305
|
get maxSize() {
|
|
1990
1306
|
return this._maxSize;
|
|
@@ -2021,7 +1337,7 @@ var ue = 100, M = class {
|
|
|
2021
1337
|
};
|
|
2022
1338
|
//#endregion
|
|
2023
1339
|
//#region src/clipboard/clipboard.ts
|
|
2024
|
-
function
|
|
1340
|
+
function ae(e, t, n) {
|
|
2025
1341
|
let r = [];
|
|
2026
1342
|
for (let i = n.startRow; i <= n.endRow; i++) {
|
|
2027
1343
|
let a = e[i], o = [];
|
|
@@ -2029,41 +1345,11 @@ function de(e, t, n) {
|
|
|
2029
1345
|
let n = a[t[e].key];
|
|
2030
1346
|
o.push(n == null ? "" : String(n));
|
|
2031
1347
|
}
|
|
2032
|
-
r.push(o
|
|
2033
|
-
}
|
|
2034
|
-
return r.join("\n");
|
|
2035
|
-
}
|
|
2036
|
-
function N(e) {
|
|
2037
|
-
let t = e.replace(/\r\n/g, "\n").replace(/\r/g, "\n"), n = [], r = [], i = 0, a = t.length;
|
|
2038
|
-
for (; i <= a;) {
|
|
2039
|
-
if (i === a) {
|
|
2040
|
-
(r.length > 0 || n.length > 0) && n.push(r);
|
|
2041
|
-
break;
|
|
2042
|
-
}
|
|
2043
|
-
if (t[i] === "\"") {
|
|
2044
|
-
let e = "";
|
|
2045
|
-
for (i++; i < a;) if (t[i] === "\"") {
|
|
2046
|
-
if (i + 1 < a && t[i + 1] === "\"") e += "\"", i += 2;
|
|
2047
|
-
else {
|
|
2048
|
-
i++;
|
|
2049
|
-
break;
|
|
2050
|
-
}
|
|
2051
|
-
} else e += t[i], i++;
|
|
2052
|
-
r.push(e), i < a && t[i] === " " ? i++ : i < a && t[i] === "\n" && (n.push(r), r = [], i++);
|
|
2053
|
-
} else {
|
|
2054
|
-
let e = "";
|
|
2055
|
-
for (; i < a && t[i] !== " " && t[i] !== "\n";) e += t[i], i++;
|
|
2056
|
-
r.push(e), i < a && t[i] === " " ? i++ : i < a && t[i] === "\n" && (n.push(r), r = [], i++);
|
|
2057
|
-
}
|
|
2058
|
-
}
|
|
2059
|
-
for (; n.length > 0;) {
|
|
2060
|
-
let e = n[n.length - 1];
|
|
2061
|
-
if (e.length === 0 || e.length === 1 && e[0] === "") n.pop();
|
|
2062
|
-
else break;
|
|
1348
|
+
r.push(o);
|
|
2063
1349
|
}
|
|
2064
|
-
return
|
|
1350
|
+
return p(r);
|
|
2065
1351
|
}
|
|
2066
|
-
function
|
|
1352
|
+
function j(e, t) {
|
|
2067
1353
|
if (e === "") return null;
|
|
2068
1354
|
switch (t.type) {
|
|
2069
1355
|
case "number": {
|
|
@@ -2076,7 +1362,7 @@ function P(e, t) {
|
|
|
2076
1362
|
}
|
|
2077
1363
|
//#endregion
|
|
2078
1364
|
//#region src/export/xlsx-writer.ts
|
|
2079
|
-
var
|
|
1365
|
+
var M = (() => {
|
|
2080
1366
|
let e = /* @__PURE__ */ new Uint32Array(256);
|
|
2081
1367
|
for (let t = 0; t < 256; t++) {
|
|
2082
1368
|
let n = t;
|
|
@@ -2085,56 +1371,56 @@ var fe = (() => {
|
|
|
2085
1371
|
}
|
|
2086
1372
|
return e;
|
|
2087
1373
|
})();
|
|
2088
|
-
function
|
|
1374
|
+
function oe(e) {
|
|
2089
1375
|
let t = 4294967295;
|
|
2090
|
-
for (let n = 0; n < e.length; n++) t =
|
|
1376
|
+
for (let n = 0; n < e.length; n++) t = M[(t ^ e[n]) & 255] ^ t >>> 8;
|
|
2091
1377
|
return (t ^ 4294967295) >>> 0;
|
|
2092
1378
|
}
|
|
2093
|
-
var
|
|
2094
|
-
function
|
|
1379
|
+
var N = new TextEncoder();
|
|
1380
|
+
function se(e) {
|
|
2095
1381
|
let t = [], n = [], r = 0;
|
|
2096
1382
|
for (let i of e) {
|
|
2097
|
-
let e =
|
|
1383
|
+
let e = N.encode(i.name), a = oe(i.data), o = i.data.length, s = new ArrayBuffer(30 + e.length), c = new DataView(s);
|
|
2098
1384
|
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);
|
|
2099
1385
|
let l = new ArrayBuffer(46 + e.length), u = new DataView(l);
|
|
2100
1386
|
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;
|
|
2101
1387
|
}
|
|
2102
|
-
let i =
|
|
2103
|
-
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),
|
|
1388
|
+
let i = P(n), a = /* @__PURE__ */ new ArrayBuffer(22), o = new DataView(a);
|
|
1389
|
+
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), P([
|
|
2104
1390
|
...t,
|
|
2105
1391
|
i,
|
|
2106
1392
|
new Uint8Array(a)
|
|
2107
1393
|
]);
|
|
2108
1394
|
}
|
|
2109
|
-
function
|
|
1395
|
+
function P(e) {
|
|
2110
1396
|
let t = e.reduce((e, t) => e + t.length, 0), n = new Uint8Array(t), r = 0;
|
|
2111
1397
|
for (let t of e) n.set(t, r), r += t.length;
|
|
2112
1398
|
return n;
|
|
2113
1399
|
}
|
|
2114
|
-
function
|
|
1400
|
+
function F(e) {
|
|
2115
1401
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
2116
1402
|
}
|
|
2117
|
-
function
|
|
1403
|
+
function ce(e) {
|
|
2118
1404
|
let t = "";
|
|
2119
1405
|
for (e++; e > 0;) t = String.fromCharCode(64 + (e % 26 || 26)) + t, e = Math.floor((e - 1) / 26);
|
|
2120
1406
|
return t;
|
|
2121
1407
|
}
|
|
2122
|
-
function
|
|
2123
|
-
return
|
|
1408
|
+
function I(e, t) {
|
|
1409
|
+
return ce(t) + (e + 1);
|
|
2124
1410
|
}
|
|
2125
|
-
function
|
|
1411
|
+
function le(e) {
|
|
2126
1412
|
let t = Date.UTC(1899, 11, 30);
|
|
2127
1413
|
return (e.getTime() - t) / 864e5;
|
|
2128
1414
|
}
|
|
2129
|
-
var
|
|
2130
|
-
function
|
|
2131
|
-
let n = [], r = t.map((e, t) => `<c r="${
|
|
1415
|
+
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>", pe = "<?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>", L = "<?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>";
|
|
1416
|
+
function R(e, t) {
|
|
1417
|
+
let n = [], r = t.map((e, t) => `<c r="${I(0, t)}" t="str" s="2"><v>${F(e.label)}</v></c>`);
|
|
2132
1418
|
return n.push(`<row r="1">${r.join("")}</row>`), e.forEach((e, r) => {
|
|
2133
1419
|
let i = t.map((t, n) => {
|
|
2134
|
-
let i =
|
|
1420
|
+
let i = I(r + 1, n), a = e[t.key];
|
|
2135
1421
|
if (a == null) return `<c r="${i}" t="str"><v></v></c>`;
|
|
2136
1422
|
let o = t.type ?? "text";
|
|
2137
|
-
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>${
|
|
1423
|
+
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>${F(String(a))}</v></c>`;
|
|
2138
1424
|
});
|
|
2139
1425
|
n.push(`<row r="${r + 2}">${i.join("")}</row>`);
|
|
2140
1426
|
}), `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
@@ -2142,55 +1428,55 @@ function Se(e, t) {
|
|
|
2142
1428
|
<sheetData>${n.join("")}</sheetData>
|
|
2143
1429
|
</worksheet>`;
|
|
2144
1430
|
}
|
|
2145
|
-
function
|
|
2146
|
-
let n =
|
|
2147
|
-
return
|
|
1431
|
+
function z(e, t) {
|
|
1432
|
+
let n = R(e, t);
|
|
1433
|
+
return se([
|
|
2148
1434
|
{
|
|
2149
1435
|
name: "[Content_Types].xml",
|
|
2150
|
-
data:
|
|
1436
|
+
data: N.encode(ue)
|
|
2151
1437
|
},
|
|
2152
1438
|
{
|
|
2153
1439
|
name: "_rels/.rels",
|
|
2154
|
-
data:
|
|
1440
|
+
data: N.encode(de)
|
|
2155
1441
|
},
|
|
2156
1442
|
{
|
|
2157
1443
|
name: "xl/workbook.xml",
|
|
2158
|
-
data:
|
|
1444
|
+
data: N.encode(fe)
|
|
2159
1445
|
},
|
|
2160
1446
|
{
|
|
2161
1447
|
name: "xl/_rels/workbook.xml.rels",
|
|
2162
|
-
data:
|
|
1448
|
+
data: N.encode(pe)
|
|
2163
1449
|
},
|
|
2164
1450
|
{
|
|
2165
1451
|
name: "xl/worksheets/sheet1.xml",
|
|
2166
|
-
data:
|
|
1452
|
+
data: N.encode(n)
|
|
2167
1453
|
},
|
|
2168
1454
|
{
|
|
2169
1455
|
name: "xl/styles.xml",
|
|
2170
|
-
data:
|
|
1456
|
+
data: N.encode(L)
|
|
2171
1457
|
}
|
|
2172
1458
|
]);
|
|
2173
1459
|
}
|
|
2174
1460
|
//#endregion
|
|
2175
1461
|
//#region src/export/export.ts
|
|
2176
|
-
function
|
|
1462
|
+
function B(e, t, n) {
|
|
2177
1463
|
switch (n) {
|
|
2178
|
-
case "csv": return
|
|
2179
|
-
case "tsv": return
|
|
2180
|
-
case "json": return
|
|
2181
|
-
case "xlsx": return
|
|
1464
|
+
case "csv": return V(e, t, ",");
|
|
1465
|
+
case "tsv": return V(e, t, " ");
|
|
1466
|
+
case "json": return he(e, t);
|
|
1467
|
+
case "xlsx": return z(e, t);
|
|
2182
1468
|
}
|
|
2183
1469
|
}
|
|
2184
|
-
function
|
|
1470
|
+
function me(e, t) {
|
|
2185
1471
|
return e == null ? "" : (t.type === "date" || t.type === "datetime") && e instanceof Date ? e.toISOString() : String(e);
|
|
2186
1472
|
}
|
|
2187
|
-
function
|
|
2188
|
-
return [t.map((e) =>
|
|
1473
|
+
function V(e, t, n) {
|
|
1474
|
+
return [t.map((e) => H(e.label, n)).join(n), ...e.map((e) => t.map((t) => H(me(e[t.key], t), n)).join(n))].join("\n");
|
|
2189
1475
|
}
|
|
2190
|
-
function
|
|
1476
|
+
function H(e, t) {
|
|
2191
1477
|
return e.includes(t) || e.includes("\"") || e.includes("\n") || e.includes("\r") ? "\"" + e.replace(/"/g, "\"\"") + "\"" : e;
|
|
2192
1478
|
}
|
|
2193
|
-
function
|
|
1479
|
+
function he(e, t) {
|
|
2194
1480
|
let n = e.map((e) => {
|
|
2195
1481
|
let n = {};
|
|
2196
1482
|
for (let r of t) {
|
|
@@ -2201,35 +1487,35 @@ function Te(e, t) {
|
|
|
2201
1487
|
});
|
|
2202
1488
|
return JSON.stringify(n, null, 2);
|
|
2203
1489
|
}
|
|
2204
|
-
function
|
|
1490
|
+
function ge(e, t, n) {
|
|
2205
1491
|
let r = new Blob([e], { type: n }), i = URL.createObjectURL(r), a = document.createElement("a");
|
|
2206
1492
|
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);
|
|
2207
1493
|
}
|
|
2208
|
-
var
|
|
1494
|
+
var _e = {
|
|
2209
1495
|
csv: "text/csv;charset=utf-8",
|
|
2210
1496
|
tsv: "text/tab-separated-values;charset=utf-8",
|
|
2211
1497
|
json: "application/json;charset=utf-8",
|
|
2212
1498
|
xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
2213
|
-
},
|
|
1499
|
+
}, ve = {
|
|
2214
1500
|
csv: ".csv",
|
|
2215
1501
|
tsv: ".tsv",
|
|
2216
1502
|
json: ".json",
|
|
2217
1503
|
xlsx: ".xlsx"
|
|
2218
1504
|
};
|
|
2219
|
-
function
|
|
2220
|
-
return
|
|
1505
|
+
function ye(e) {
|
|
1506
|
+
return _e[e];
|
|
2221
1507
|
}
|
|
2222
|
-
function
|
|
2223
|
-
return
|
|
1508
|
+
function be(e) {
|
|
1509
|
+
return ve[e];
|
|
2224
1510
|
}
|
|
2225
1511
|
//#endregion
|
|
2226
1512
|
//#region src/export/xlsx-reader.ts
|
|
2227
|
-
function
|
|
1513
|
+
function xe(e) {
|
|
2228
1514
|
for (let t = e.byteLength - 22; t >= 0; t--) if (e.getUint32(t, !0) === 101010256) return t;
|
|
2229
1515
|
throw Error("XLSX: End of central directory not found — not a valid ZIP file");
|
|
2230
1516
|
}
|
|
2231
|
-
function
|
|
2232
|
-
let t =
|
|
1517
|
+
function Se(e) {
|
|
1518
|
+
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;
|
|
2233
1519
|
for (; o < s && e.getUint32(o, !0) === 33639248;) {
|
|
2234
1520
|
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));
|
|
2235
1521
|
a.push({
|
|
@@ -2242,7 +1528,7 @@ function Me(e) {
|
|
|
2242
1528
|
}
|
|
2243
1529
|
return a;
|
|
2244
1530
|
}
|
|
2245
|
-
async function
|
|
1531
|
+
async function Ce(e) {
|
|
2246
1532
|
let t = new DecompressionStream("deflate-raw"), n = t.writable.getWriter(), r = t.readable.getReader();
|
|
2247
1533
|
n.write(e), n.close();
|
|
2248
1534
|
let i = [];
|
|
@@ -2255,28 +1541,28 @@ async function Ne(e) {
|
|
|
2255
1541
|
for (let e of i) o.set(e, s), s += e.length;
|
|
2256
1542
|
return o;
|
|
2257
1543
|
}
|
|
2258
|
-
async function
|
|
1544
|
+
async function we(e, t) {
|
|
2259
1545
|
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);
|
|
2260
1546
|
if (t.compressionMethod === 0) return o.slice();
|
|
2261
|
-
if (t.compressionMethod === 8) return
|
|
1547
|
+
if (t.compressionMethod === 8) return Ce(o);
|
|
2262
1548
|
throw Error(`XLSX: Unsupported compression method ${t.compressionMethod}`);
|
|
2263
1549
|
}
|
|
2264
|
-
async function
|
|
2265
|
-
let t = new DataView(e), n =
|
|
2266
|
-
for (let e of n) e.compressedSize === 0 && e.name.endsWith("/") || r.set(e.name, await
|
|
1550
|
+
async function Te(e) {
|
|
1551
|
+
let t = new DataView(e), n = Se(t), r = /* @__PURE__ */ new Map();
|
|
1552
|
+
for (let e of n) e.compressedSize === 0 && e.name.endsWith("/") || r.set(e.name, await we(t, e));
|
|
2267
1553
|
return r;
|
|
2268
1554
|
}
|
|
2269
|
-
var
|
|
2270
|
-
function
|
|
2271
|
-
let t =
|
|
1555
|
+
var Ee = new TextDecoder("utf-8");
|
|
1556
|
+
function U(e) {
|
|
1557
|
+
let t = Ee.decode(e);
|
|
2272
1558
|
return new DOMParser().parseFromString(t, "application/xml");
|
|
2273
1559
|
}
|
|
2274
|
-
function
|
|
1560
|
+
function De(e) {
|
|
2275
1561
|
if (!e) return [];
|
|
2276
|
-
let t =
|
|
1562
|
+
let t = U(e);
|
|
2277
1563
|
return Array.from(t.querySelectorAll("si")).map((e) => Array.from(e.querySelectorAll("t")).map((e) => e.textContent ?? "").join(""));
|
|
2278
1564
|
}
|
|
2279
|
-
var
|
|
1565
|
+
var Oe = /* @__PURE__ */ new Set([
|
|
2280
1566
|
14,
|
|
2281
1567
|
15,
|
|
2282
1568
|
16,
|
|
@@ -2296,37 +1582,37 @@ var Re = /* @__PURE__ */ new Set([
|
|
|
2296
1582
|
57,
|
|
2297
1583
|
58
|
|
2298
1584
|
]);
|
|
2299
|
-
function
|
|
1585
|
+
function ke(e) {
|
|
2300
1586
|
let t = e.replace(/"[^"]*"/g, "").replace(/\\./g, "").replace(/\[[^\]]*\]/g, "").split(";")[0];
|
|
2301
1587
|
return /[dy]/i.test(t);
|
|
2302
1588
|
}
|
|
2303
|
-
function
|
|
1589
|
+
function Ae(e) {
|
|
2304
1590
|
let t = /* @__PURE__ */ new Set();
|
|
2305
1591
|
if (!e) return t;
|
|
2306
|
-
let n =
|
|
1592
|
+
let n = U(e), r = /* @__PURE__ */ new Map();
|
|
2307
1593
|
for (let e of Array.from(n.querySelectorAll("numFmts > numFmt"))) r.set(parseInt(e.getAttribute("numFmtId") ?? "", 10), e.getAttribute("formatCode") ?? "");
|
|
2308
1594
|
return Array.from(n.querySelectorAll("cellXfs > xf")).forEach((e, n) => {
|
|
2309
1595
|
let i = parseInt(e.getAttribute("numFmtId") ?? "0", 10), a = r.get(i);
|
|
2310
|
-
(a === void 0 ?
|
|
1596
|
+
(a === void 0 ? Oe.has(i) : ke(a)) && t.add(n);
|
|
2311
1597
|
}), t;
|
|
2312
1598
|
}
|
|
2313
|
-
function
|
|
1599
|
+
function je(e) {
|
|
2314
1600
|
if (!e) return !1;
|
|
2315
|
-
let t =
|
|
1601
|
+
let t = U(e).querySelector("workbookPr")?.getAttribute("date1904");
|
|
2316
1602
|
return t === "1" || t === "true";
|
|
2317
1603
|
}
|
|
2318
|
-
function
|
|
1604
|
+
function Me(e, t) {
|
|
2319
1605
|
return new Date((t ? Date.UTC(1904, 0, 1) : Date.UTC(1899, 11, 30)) + Math.floor(e) * 864e5).toISOString().slice(0, 10);
|
|
2320
1606
|
}
|
|
2321
|
-
function
|
|
2322
|
-
let i =
|
|
1607
|
+
function Ne(e, t, n, r) {
|
|
1608
|
+
let i = U(e).querySelectorAll("row");
|
|
2323
1609
|
if (i.length === 0) return [];
|
|
2324
1610
|
let a = 0, o = /* @__PURE__ */ new Map();
|
|
2325
1611
|
for (let e of i) {
|
|
2326
1612
|
let i = parseInt(e.getAttribute("r") ?? "1", 10) - 1, s = /* @__PURE__ */ new Map();
|
|
2327
1613
|
o.set(i, s);
|
|
2328
1614
|
for (let i of e.querySelectorAll("c")) {
|
|
2329
|
-
let e =
|
|
1615
|
+
let e = W(i.getAttribute("r") ?? "");
|
|
2330
1616
|
e > a && (a = e);
|
|
2331
1617
|
let o = i.getAttribute("t") ?? "", c = i.getAttribute("s") ?? "", l = i.querySelector("v")?.textContent ?? "", u = i.querySelector("is > t")?.textContent ?? null, d;
|
|
2332
1618
|
if (o === "s") d = t[parseInt(l, 10)] ?? "";
|
|
@@ -2335,7 +1621,7 @@ function Ue(e, t, n, r) {
|
|
|
2335
1621
|
else if (l === "") d = "";
|
|
2336
1622
|
else {
|
|
2337
1623
|
let e = parseFloat(l);
|
|
2338
|
-
d = c !== "" && n.has(parseInt(c, 10)) && !isNaN(e) && e >= 0 ?
|
|
1624
|
+
d = c !== "" && n.has(parseInt(c, 10)) && !isNaN(e) && e >= 0 ? Me(e, r) : l;
|
|
2339
1625
|
}
|
|
2340
1626
|
s.set(e, d);
|
|
2341
1627
|
}
|
|
@@ -2349,13 +1635,13 @@ function Ue(e, t, n, r) {
|
|
|
2349
1635
|
}
|
|
2350
1636
|
return c;
|
|
2351
1637
|
}
|
|
2352
|
-
function
|
|
1638
|
+
function W(e) {
|
|
2353
1639
|
let t = 0, n = 0;
|
|
2354
1640
|
for (; n < e.length && e[n] >= "A" && e[n] <= "Z";) t = t * 26 + (e.charCodeAt(n) - 64), n++;
|
|
2355
1641
|
return t - 1;
|
|
2356
1642
|
}
|
|
2357
|
-
async function
|
|
2358
|
-
let t = await
|
|
1643
|
+
async function Pe(e) {
|
|
1644
|
+
let t = await Te(e), n = De(t.get("xl/sharedStrings.xml")), r = t.get("xl/worksheets/sheet1.xml");
|
|
2359
1645
|
if (!r) {
|
|
2360
1646
|
for (let [e, n] of t) if (e.toLowerCase().includes("worksheets/sheet")) {
|
|
2361
1647
|
r = n;
|
|
@@ -2363,7 +1649,7 @@ async function U(e) {
|
|
|
2363
1649
|
}
|
|
2364
1650
|
}
|
|
2365
1651
|
if (!r) throw Error("XLSX: No worksheet found");
|
|
2366
|
-
let i =
|
|
1652
|
+
let i = Ae(t.get("xl/styles.xml")), a = je(t.get("xl/workbook.xml")), o = Ne(r, n, i, a);
|
|
2367
1653
|
return o.length === 0 ? {
|
|
2368
1654
|
headers: [],
|
|
2369
1655
|
rows: []
|
|
@@ -2374,13 +1660,8 @@ async function U(e) {
|
|
|
2374
1660
|
}
|
|
2375
1661
|
//#endregion
|
|
2376
1662
|
//#region src/models/types.ts
|
|
2377
|
-
function W(e) {
|
|
2378
|
-
return e.align ? e.align : e.type === "number" ? "end" : e.type === "boolean" ? "center" : "start";
|
|
2379
|
-
}
|
|
2380
|
-
//#endregion
|
|
2381
|
-
//#region node_modules/@iyulab/components/dist/utilities/keyboard.js
|
|
2382
1663
|
function G(e) {
|
|
2383
|
-
return e.
|
|
1664
|
+
return e.align ? e.align : e.type === "number" ? "end" : e.type === "boolean" ? "center" : "start";
|
|
2384
1665
|
}
|
|
2385
1666
|
//#endregion
|
|
2386
1667
|
//#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorate.js
|
|
@@ -2399,14 +1680,14 @@ var q = {
|
|
|
2399
1680
|
lt: "<",
|
|
2400
1681
|
gte: "≥",
|
|
2401
1682
|
lte: "≤"
|
|
2402
|
-
}, J = 120, Y = 40, X = 20, Z = 32, Q = 5,
|
|
1683
|
+
}, J = 120, Y = 40, X = 20, Z = 32, Q = 5, Fe = 200, $ = class extends n {
|
|
2403
1684
|
constructor(...e) {
|
|
2404
|
-
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
|
|
1685
|
+
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 k(), this._undo = new A(), 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 = () => {
|
|
2405
1686
|
this._commitCommentPopup();
|
|
2406
1687
|
}, 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();
|
|
2407
1688
|
}
|
|
2408
1689
|
static {
|
|
2409
|
-
this.styles =
|
|
1690
|
+
this.styles = h;
|
|
2410
1691
|
}
|
|
2411
1692
|
get data() {
|
|
2412
1693
|
return this._data;
|
|
@@ -2766,12 +2047,12 @@ var q = {
|
|
|
2766
2047
|
if (!t) return "";
|
|
2767
2048
|
let n = this.visibleColumns.slice(t.startCol, t.endCol + 1), r = [];
|
|
2768
2049
|
for (let e = t.startRow; e <= t.endRow; e++) r.push(this.data[this._toDataIndex(e)]);
|
|
2769
|
-
return
|
|
2050
|
+
return B(r, n, e);
|
|
2770
2051
|
}
|
|
2771
|
-
return
|
|
2052
|
+
return B(this._sortedIndices.map((e) => this.data[e]), this.visibleColumns, e);
|
|
2772
2053
|
}
|
|
2773
2054
|
exportToFile(e, t) {
|
|
2774
|
-
|
|
2055
|
+
ge(this.exportToString(e), t ?? `export${be(e)}`, ye(e));
|
|
2775
2056
|
}
|
|
2776
2057
|
setComment(e, t, n) {
|
|
2777
2058
|
let r = this.getComment(e, t);
|
|
@@ -2828,11 +2109,11 @@ var q = {
|
|
|
2828
2109
|
async importFromFile(e) {
|
|
2829
2110
|
let t = e.name.toLowerCase();
|
|
2830
2111
|
if (t.endsWith(".xlsx")) {
|
|
2831
|
-
let t = await
|
|
2112
|
+
let t = await Pe(await e.arrayBuffer());
|
|
2832
2113
|
this._applyImportedSheet(t);
|
|
2833
2114
|
} else if (t.endsWith(".csv") || t.endsWith(".tsv")) {
|
|
2834
|
-
let t =
|
|
2835
|
-
this._applyImportedRows(
|
|
2115
|
+
let t = await e.text(), n = f(t);
|
|
2116
|
+
this._applyImportedRows(n);
|
|
2836
2117
|
} else console.warn(`flex-table importFromFile: unsupported file type "${e.name}"`);
|
|
2837
2118
|
}
|
|
2838
2119
|
_applyImportedSheet(e) {
|
|
@@ -2842,7 +2123,7 @@ var q = {
|
|
|
2842
2123
|
let a = t.get(e);
|
|
2843
2124
|
if (!a) return;
|
|
2844
2125
|
let o = this.columns.find((e) => e.key === a);
|
|
2845
|
-
r[a] = o ?
|
|
2126
|
+
r[a] = o ? j(n[i] ?? "", o) : n[i] ?? null;
|
|
2846
2127
|
}), r;
|
|
2847
2128
|
}), r = [...this.data];
|
|
2848
2129
|
this.data = n, this._undo.push({
|
|
@@ -2867,7 +2148,7 @@ var q = {
|
|
|
2867
2148
|
let a = n.get(t);
|
|
2868
2149
|
if (!a) return;
|
|
2869
2150
|
let o = this.columns.find((e) => e.key === a);
|
|
2870
|
-
r[a] = o ?
|
|
2151
|
+
r[a] = o ? j(e[i] ?? "", o) : e[i] ?? null;
|
|
2871
2152
|
}), r;
|
|
2872
2153
|
}), i = [...this.data];
|
|
2873
2154
|
this.data = r, this._undo.push({
|
|
@@ -3021,7 +2302,7 @@ var q = {
|
|
|
3021
2302
|
this._filteredIndices = Array.from({ length: this.data.length }, (e, t) => t), this._sortedIndices = this._filteredIndices;
|
|
3022
2303
|
return;
|
|
3023
2304
|
}
|
|
3024
|
-
if (this._filteredIndices =
|
|
2305
|
+
if (this._filteredIndices = re(this.data, this._filters, (e, t, n) => {
|
|
3025
2306
|
this.dispatchEvent(new CustomEvent("filter-error", {
|
|
3026
2307
|
detail: {
|
|
3027
2308
|
error: e,
|
|
@@ -3051,7 +2332,7 @@ var q = {
|
|
|
3051
2332
|
e !== this._viewportHeight && (this._viewportHeight = e), t !== this._viewportWidth && (this._viewportWidth = t), this._warnIfUnconstrained();
|
|
3052
2333
|
}
|
|
3053
2334
|
_warnIfUnconstrained() {
|
|
3054
|
-
this._warnedUnconstrained || process.env.NODE_ENV === "production" || this._visibleRowCount <
|
|
2335
|
+
this._warnedUnconstrained || process.env.NODE_ENV === "production" || this._visibleRowCount < Fe || 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.`));
|
|
3055
2336
|
}
|
|
3056
2337
|
_onScroll() {
|
|
3057
2338
|
this._scrollTop = this.scrollTop, this._scrollLeft = this.scrollLeft;
|
|
@@ -3181,7 +2462,7 @@ var q = {
|
|
|
3181
2462
|
}
|
|
3182
2463
|
let t = this.shadowRoot?.querySelector(".ft-editor");
|
|
3183
2464
|
if (t) {
|
|
3184
|
-
let n =
|
|
2465
|
+
let n = j(t.value, e);
|
|
3185
2466
|
this._applyEdit(n);
|
|
3186
2467
|
} else this._cancelEdit();
|
|
3187
2468
|
}
|
|
@@ -3255,7 +2536,7 @@ var q = {
|
|
|
3255
2536
|
}));
|
|
3256
2537
|
}
|
|
3257
2538
|
_onEditorKeyDown(e) {
|
|
3258
|
-
if (!
|
|
2539
|
+
if (!m(e)) {
|
|
3259
2540
|
if (this._autocompleteState && this._autocompleteState.candidates.length > 0) {
|
|
3260
2541
|
if (e.key === "ArrowDown") {
|
|
3261
2542
|
e.preventDefault(), e.stopPropagation();
|
|
@@ -3323,7 +2604,7 @@ var q = {
|
|
|
3323
2604
|
].includes(t) && this._handleCtrlKey(e)) return;
|
|
3324
2605
|
}
|
|
3325
2606
|
if (t.length !== 0 && this._visibleRowCount !== 0) {
|
|
3326
|
-
if ((e.key === "Enter" || e.key === "F2") && this._activeCell && !
|
|
2607
|
+
if ((e.key === "Enter" || e.key === "F2") && this._activeCell && !m(e)) {
|
|
3327
2608
|
e.preventDefault();
|
|
3328
2609
|
let n = t[this._activeCell.col];
|
|
3329
2610
|
n && this._isCellEditable(n) ? this._startEdit() : e.key === "Enter" && this._fireRowActivate(n);
|
|
@@ -3411,7 +2692,7 @@ var q = {
|
|
|
3411
2692
|
async _handleCopy(e) {
|
|
3412
2693
|
let t = this._selection.getEffectiveRange();
|
|
3413
2694
|
if (!t) return;
|
|
3414
|
-
let n = this.visibleColumns, r =
|
|
2695
|
+
let n = this.visibleColumns, r = ae(this._sortedIndices.map((e) => this.data[e]), n, t);
|
|
3415
2696
|
try {
|
|
3416
2697
|
await navigator.clipboard.writeText(r);
|
|
3417
2698
|
} catch (e) {
|
|
@@ -3437,7 +2718,7 @@ var q = {
|
|
|
3437
2718
|
if (!this._activeCell) return;
|
|
3438
2719
|
let e = await this._readClipboardText();
|
|
3439
2720
|
if (e == null) return;
|
|
3440
|
-
let t =
|
|
2721
|
+
let t = f(e);
|
|
3441
2722
|
if (t.length === 0) return;
|
|
3442
2723
|
let n = this._expandRowsForPaste(this._activeCell.row, t.length), r = this._applyPasteData(this._activeCell, t);
|
|
3443
2724
|
if (r.length > 0 || n.length > 0) {
|
|
@@ -3495,7 +2776,7 @@ var q = {
|
|
|
3495
2776
|
for (let a = 0; a < t[i].length; a++) {
|
|
3496
2777
|
let s = e.col + a;
|
|
3497
2778
|
if (s >= n.length) break;
|
|
3498
|
-
let c = n[s], l = this.data[o][c.key], u =
|
|
2779
|
+
let c = n[s], l = this.data[o][c.key], u = j(t[i][a], c);
|
|
3499
2780
|
this.data[o][c.key] = u, r.push({
|
|
3500
2781
|
row: o,
|
|
3501
2782
|
col: s,
|
|
@@ -3560,7 +2841,7 @@ var q = {
|
|
|
3560
2841
|
for (let r = e.startCol + 1; r <= e.endCol; r++) {
|
|
3561
2842
|
let e = t[r];
|
|
3562
2843
|
if (!e || !this._isCellEditable(e)) continue;
|
|
3563
|
-
let a =
|
|
2844
|
+
let a = j(o == null ? "" : String(o), e);
|
|
3564
2845
|
n.push({
|
|
3565
2846
|
row: i,
|
|
3566
2847
|
key: e.key,
|
|
@@ -3697,7 +2978,7 @@ var q = {
|
|
|
3697
2978
|
return Math.min(n, i);
|
|
3698
2979
|
}
|
|
3699
2980
|
_renderHeaderCell(e, t) {
|
|
3700
|
-
let n = e.sortable !== !1, r = this._sortCriteria.find((t) => t.key === e.key), o = this._sortCriteria.length > 1 ? this._sortCriteria.findIndex((t) => t.key === e.key) : -1, s = this._filters.some((t) => t.key === e.key), c = e.pinned === "left", l = e.pinned === "right", u = c || l, d = e.headerAlign ??
|
|
2981
|
+
let n = e.sortable !== !1, r = this._sortCriteria.find((t) => t.key === e.key), o = this._sortCriteria.length > 1 ? this._sortCriteria.findIndex((t) => t.key === e.key) : -1, s = this._filters.some((t) => t.key === e.key), c = e.pinned === "left", l = e.pinned === "right", u = c || l, d = e.headerAlign ?? G(e), f = [
|
|
3701
2982
|
"ft-header-cell",
|
|
3702
2983
|
n ? "ft-sortable" : "",
|
|
3703
2984
|
u ? "ft-pinned" : "",
|
|
@@ -3719,7 +3000,7 @@ var q = {
|
|
|
3719
3000
|
@click=${n ? (t) => this._onHeaderClick(t, e) : void 0}>
|
|
3720
3001
|
${C ? i`
|
|
3721
3002
|
<button class="ft-hidden-col-indicator"
|
|
3722
|
-
title=${
|
|
3003
|
+
title=${O("showHiddenColumns")}
|
|
3723
3004
|
@click=${(t) => {
|
|
3724
3005
|
t.stopPropagation(), this._showHiddenBefore(e);
|
|
3725
3006
|
}}>❯</button>
|
|
@@ -3729,8 +3010,8 @@ var q = {
|
|
|
3729
3010
|
${o >= 0 ? i`<span class="ft-sort-order">${o + 1}</span>` : ""}
|
|
3730
3011
|
<button class="ft-column-menu-btn ${s ? "ft-filter-active" : ""}"
|
|
3731
3012
|
type="button"
|
|
3732
|
-
title=${
|
|
3733
|
-
aria-label=${
|
|
3013
|
+
title=${O("columnMenu")}
|
|
3014
|
+
aria-label=${O("columnMenuFor", { header: e.label })}
|
|
3734
3015
|
aria-haspopup="menu"
|
|
3735
3016
|
aria-expanded=${this._headerMenu?.key === e.key ? "true" : "false"}
|
|
3736
3017
|
@mousedown=${(e) => e.stopPropagation()}
|
|
@@ -3849,26 +3130,26 @@ var q = {
|
|
|
3849
3130
|
}}>${t}</button>
|
|
3850
3131
|
`;
|
|
3851
3132
|
return i`
|
|
3852
|
-
<div class="ft-header-menu" role="menu" aria-label=${
|
|
3133
|
+
<div class="ft-header-menu" role="menu" aria-label=${O("columnMenuRegion", { header: o.label })}
|
|
3853
3134
|
style="position: fixed; left: ${t}px; top: ${n}px; z-index: var(--u-layer-floating, 1000);"
|
|
3854
3135
|
@mousedown=${(e) => e.stopPropagation()}
|
|
3855
3136
|
@keydown=${(e) => this._onHeaderMenuKeydown(e)}>
|
|
3856
3137
|
${o.sortable === !1 ? a : i`
|
|
3857
|
-
${c("sort-asc",
|
|
3858
|
-
${c("sort-desc",
|
|
3138
|
+
${c("sort-asc", O("sortAscending"), () => this._applySortFromMenu(e, "asc"))}
|
|
3139
|
+
${c("sort-desc", O("sortDescending"), () => this._applySortFromMenu(e, "desc"))}
|
|
3859
3140
|
<div class="ft-header-menu-separator" role="separator"></div>
|
|
3860
3141
|
`}
|
|
3861
3142
|
${this.showFilters ? i`
|
|
3862
|
-
${c("filter",
|
|
3863
|
-
${s ? c("clear-filter",
|
|
3143
|
+
${c("filter", O("filter"), () => this._openFilterFromMenu(e))}
|
|
3144
|
+
${s ? c("clear-filter", O("clearFilter"), () => this._clearColumnFilter(e)) : a}
|
|
3864
3145
|
<div class="ft-header-menu-separator" role="separator"></div>
|
|
3865
3146
|
` : a}
|
|
3866
|
-
${c("hide",
|
|
3867
|
-
${r.map((e) => c("show",
|
|
3147
|
+
${c("hide", O("hideColumn"), () => this._setColumnHidden(e, !0))}
|
|
3148
|
+
${r.map((e) => c("show", O("showColumn", { header: e.label }), () => this._setColumnHidden(e.key, !1)))}
|
|
3868
3149
|
<div class="ft-header-menu-separator" role="separator"></div>
|
|
3869
|
-
${c("autofit",
|
|
3870
|
-
${c("wider",
|
|
3871
|
-
${c("narrower",
|
|
3150
|
+
${c("autofit", O("autoFitWidth"), () => this._autoFitColumn(e))}
|
|
3151
|
+
${c("wider", O("wider"), () => this._resizeColumnBy(e, X), !0)}
|
|
3152
|
+
${c("narrower", O("narrower"), () => this._resizeColumnBy(e, -20), !0)}
|
|
3872
3153
|
</div>
|
|
3873
3154
|
`;
|
|
3874
3155
|
}
|
|
@@ -3886,26 +3167,26 @@ var q = {
|
|
|
3886
3167
|
}}>${e}</button>
|
|
3887
3168
|
`, f = i`<div class="ft-context-menu-separator" role="separator"></div>`;
|
|
3888
3169
|
return i`
|
|
3889
|
-
<div class="ft-body-context-menu" role="menu" aria-label=${
|
|
3170
|
+
<div class="ft-body-context-menu" role="menu" aria-label=${O("cellActions")}
|
|
3890
3171
|
style="position: fixed; left: ${n}px; top: ${r}px; z-index: var(--u-layer-floating, 1000);"
|
|
3891
3172
|
@mousedown=${(e) => e.stopPropagation()}
|
|
3892
3173
|
@keydown=${(e) => this._onMenuKeydown(e, ".ft-body-context-menu", l)}>
|
|
3893
|
-
${d(
|
|
3174
|
+
${d(O("copy"), () => this._handleCopy(!1))}
|
|
3894
3175
|
${f}
|
|
3895
|
-
${d(
|
|
3896
|
-
${d(
|
|
3897
|
-
${d(
|
|
3176
|
+
${d(O("insertRowAbove"), () => this.addRow(void 0, t))}
|
|
3177
|
+
${d(O("insertRowBelow"), () => this.addRow(void 0, t + 1))}
|
|
3178
|
+
${d(O("deleteRow"), () => this.deleteRows([t]), !0)}
|
|
3898
3179
|
${f}
|
|
3899
|
-
${d(
|
|
3180
|
+
${d(O("hideColumn"), () => this._setColumnHidden(o.key, !0))}
|
|
3900
3181
|
${f}
|
|
3901
|
-
${d(`${
|
|
3902
|
-
${d(`${
|
|
3182
|
+
${d(`${O("sortAscending")} ↑`, () => this._applySortFromMenu(o.key, "asc"))}
|
|
3183
|
+
${d(`${O("sortDescending")} ↓`, () => this._applySortFromMenu(o.key, "desc"))}
|
|
3903
3184
|
${f}
|
|
3904
|
-
${d(
|
|
3905
|
-
${c ? d(
|
|
3185
|
+
${d(O("filterByThisValue"), () => this.setFilter(o.key, (e) => e === s))}
|
|
3186
|
+
${c ? d(O("clearFilter"), () => this.removeFilter(o.key)) : a}
|
|
3906
3187
|
${f}
|
|
3907
|
-
${d(
|
|
3908
|
-
${u ? d(
|
|
3188
|
+
${d(O(u ? "editComment" : "addComment"), () => this._openCommentPopup(t, o.key, n, r))}
|
|
3189
|
+
${u ? d(O("deleteComment"), () => this.setComment(t, o.key, null), !0) : a}
|
|
3909
3190
|
</div>
|
|
3910
3191
|
`;
|
|
3911
3192
|
}
|
|
@@ -3937,13 +3218,13 @@ var q = {
|
|
|
3937
3218
|
@mousedown=${(e) => e.stopPropagation()}>
|
|
3938
3219
|
<textarea class="ft-comment-popup-textarea"
|
|
3939
3220
|
rows="4"
|
|
3940
|
-
placeholder=${
|
|
3221
|
+
placeholder=${O("addCommentPlaceholder")}
|
|
3941
3222
|
@keydown=${(e) => {
|
|
3942
3223
|
e.key === "Escape" && (e.preventDefault(), this._cancelCommentPopup()), e.key === "Enter" && (e.ctrlKey || e.metaKey) && (e.preventDefault(), this._commitCommentPopup());
|
|
3943
3224
|
}}></textarea>
|
|
3944
3225
|
<div class="ft-comment-popup-buttons">
|
|
3945
|
-
<button class="ft-comment-popup-cancel" @click=${() => this._cancelCommentPopup()}>${
|
|
3946
|
-
<button class="ft-comment-popup-save" @click=${() => this._commitCommentPopup()}>${
|
|
3226
|
+
<button class="ft-comment-popup-cancel" @click=${() => this._cancelCommentPopup()}>${O("cancel")}</button>
|
|
3227
|
+
<button class="ft-comment-popup-save" @click=${() => this._commitCommentPopup()}>${O("save")}</button>
|
|
3947
3228
|
</div>
|
|
3948
3229
|
</div>
|
|
3949
3230
|
`;
|
|
@@ -3979,7 +3260,7 @@ var q = {
|
|
|
3979
3260
|
<div class="ft-filter-dropdown" @click=${(e) => e.stopPropagation()}>
|
|
3980
3261
|
${t === "boolean" ? this._renderBooleanFilter(e) : t === "number" ? this._renderNumberFilter(e) : t === "date" || t === "datetime" ? this._renderDateFilter(e) : this._renderTextFilter(e)}
|
|
3981
3262
|
<div class="ft-filter-actions">
|
|
3982
|
-
<button class="ft-filter-clear" @click=${() => this._clearColumnFilter(e.key)}>${
|
|
3263
|
+
<button class="ft-filter-clear" @click=${() => this._clearColumnFilter(e.key)}>${O("clear")}</button>
|
|
3983
3264
|
</div>
|
|
3984
3265
|
</div>
|
|
3985
3266
|
`;
|
|
@@ -4012,7 +3293,7 @@ var q = {
|
|
|
4012
3293
|
let n = this._emptyFilterState.get(e) ?? "";
|
|
4013
3294
|
return i`
|
|
4014
3295
|
<div class="ft-filter-empty-row">
|
|
4015
|
-
<label>${
|
|
3296
|
+
<label>${O("blankCells")}</label>
|
|
4016
3297
|
<select class="ft-filter-mode-select"
|
|
4017
3298
|
.value=${n}
|
|
4018
3299
|
@change=${(n) => {
|
|
@@ -4022,9 +3303,9 @@ var q = {
|
|
|
4022
3303
|
@keydown=${(e) => {
|
|
4023
3304
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4024
3305
|
}}>
|
|
4025
|
-
<option value="">${
|
|
4026
|
-
<option value="empty">${
|
|
4027
|
-
<option value="non-empty">${
|
|
3306
|
+
<option value="">${O("blankAll")}</option>
|
|
3307
|
+
<option value="empty">${O("emptyOnly")}</option>
|
|
3308
|
+
<option value="non-empty">${O("nonEmptyOnly")}</option>
|
|
4028
3309
|
</select>
|
|
4029
3310
|
</div>
|
|
4030
3311
|
`;
|
|
@@ -4100,13 +3381,13 @@ var q = {
|
|
|
4100
3381
|
@keydown=${(e) => {
|
|
4101
3382
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4102
3383
|
}}>
|
|
4103
|
-
<option value="contains">${
|
|
4104
|
-
<option value="starts">${
|
|
4105
|
-
<option value="ends">${
|
|
4106
|
-
<option value="wildcard">${
|
|
3384
|
+
<option value="contains">${O("contains")}</option>
|
|
3385
|
+
<option value="starts">${O("startsWith")}</option>
|
|
3386
|
+
<option value="ends">${O("endsWith")}</option>
|
|
3387
|
+
<option value="wildcard">${O("wildcard")}</option>
|
|
4107
3388
|
</select>
|
|
4108
3389
|
</div>
|
|
4109
|
-
<input class="ft-filter-input" type="text" placeholder=${
|
|
3390
|
+
<input class="ft-filter-input" type="text" placeholder=${O("searchPlaceholder")}
|
|
4110
3391
|
.value=${t.value}
|
|
4111
3392
|
@input=${(t) => {
|
|
4112
3393
|
let n = t.target.value, r = this._textFilterState.get(e.key) ?? {
|
|
@@ -4157,7 +3438,7 @@ var q = {
|
|
|
4157
3438
|
}}>
|
|
4158
3439
|
${Object.keys(q).map((e) => i`<option value=${e}>${q[e]}</option>`)}
|
|
4159
3440
|
</select>
|
|
4160
|
-
<input class="ft-filter-input ft-num-cond-input" type="number" placeholder=${
|
|
3441
|
+
<input class="ft-filter-input ft-num-cond-input" type="number" placeholder=${O("valuePlaceholder")}
|
|
4161
3442
|
.value=${n.value == null ? "" : String(n.value)}
|
|
4162
3443
|
@input=${(n) => {
|
|
4163
3444
|
let r = n.target.value, i = this._numberFilterState.get(e) ?? this._defaultNumState();
|
|
@@ -4218,13 +3499,13 @@ var q = {
|
|
|
4218
3499
|
let t = e.type === "datetime" ? "datetime-local" : "date", n = this._dateFilterState.get(e.key) ?? {};
|
|
4219
3500
|
return i`
|
|
4220
3501
|
<div class="ft-filter-range">
|
|
4221
|
-
<input class="ft-filter-input" type=${t} placeholder=${
|
|
3502
|
+
<input class="ft-filter-input" type=${t} placeholder=${O("fromPlaceholder")}
|
|
4222
3503
|
.value=${n.from ?? ""}
|
|
4223
3504
|
@input=${(t) => this._applyDateFilter(e.key, t, "from")}
|
|
4224
3505
|
@keydown=${(e) => {
|
|
4225
3506
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4226
3507
|
}}>
|
|
4227
|
-
<input class="ft-filter-input" type=${t} placeholder=${
|
|
3508
|
+
<input class="ft-filter-input" type=${t} placeholder=${O("toPlaceholder")}
|
|
4228
3509
|
.value=${n.to ?? ""}
|
|
4229
3510
|
@input=${(t) => this._applyDateFilter(e.key, t, "to")}
|
|
4230
3511
|
@keydown=${(e) => {
|
|
@@ -4250,9 +3531,9 @@ var q = {
|
|
|
4250
3531
|
@keydown=${(e) => {
|
|
4251
3532
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4252
3533
|
}}>
|
|
4253
|
-
<option value="all">${
|
|
4254
|
-
<option value="true">\u2714 ${
|
|
4255
|
-
<option value="false">\u2718 ${
|
|
3534
|
+
<option value="all">${O("all")}</option>
|
|
3535
|
+
<option value="true">\u2714 ${O("booleanTrue")}</option>
|
|
3536
|
+
<option value="false">\u2718 ${O("booleanFalse")}</option>
|
|
4256
3537
|
</select>
|
|
4257
3538
|
${this._renderEmptyFilterRow(e.key)}
|
|
4258
3539
|
`;
|
|
@@ -4669,42 +3950,42 @@ var q = {
|
|
|
4669
3950
|
this._closeFindPanel();
|
|
4670
3951
|
return;
|
|
4671
3952
|
}
|
|
4672
|
-
e.key === "Enter" && !
|
|
3953
|
+
e.key === "Enter" && !m(e) && e.target instanceof HTMLInputElement && e.target.classList.contains("ft-find-input") && (e.shiftKey ? this._findPrev() : this._findNext());
|
|
4673
3954
|
}}>
|
|
4674
3955
|
<div class="ft-find-row">
|
|
4675
|
-
<input class="ft-find-input" type="text" placeholder=${
|
|
3956
|
+
<input class="ft-find-input" type="text" placeholder=${O("findPlaceholder")}
|
|
4676
3957
|
.value=${t}
|
|
4677
3958
|
@input=${(e) => {
|
|
4678
3959
|
this._findState.query = e.target.value, this._findSearch();
|
|
4679
3960
|
}}>
|
|
4680
3961
|
<span class="ft-find-count">${c > 0 ? `${l}/${c}` : t ? "0 results" : ""}</span>
|
|
4681
|
-
<button @click=${() => this._findPrev()} title=${
|
|
4682
|
-
<button @click=${() => this._findNext()} title=${
|
|
4683
|
-
<label title=${
|
|
3962
|
+
<button @click=${() => this._findPrev()} title=${O("findPrevious")}>◀</button>
|
|
3963
|
+
<button @click=${() => this._findNext()} title=${O("findNext")}>▶</button>
|
|
3964
|
+
<label title=${O("matchCase")}><input type="checkbox" ?checked=${r} @change=${(e) => {
|
|
4684
3965
|
this._findState.matchCase = e.target.checked, this._findSearch();
|
|
4685
3966
|
}}> Aa</label>
|
|
4686
|
-
<label title=${
|
|
3967
|
+
<label title=${O("wholeCell")}><input type="checkbox" ?checked=${a} @change=${(e) => {
|
|
4687
3968
|
this._findState.wholeCell = e.target.checked, this._findSearch();
|
|
4688
3969
|
}}> [ ]</label>
|
|
4689
|
-
<button @click=${() => this._closeFindPanel()} title=${
|
|
3970
|
+
<button @click=${() => this._closeFindPanel()} title=${O("closeFind")}>✕</button>
|
|
4690
3971
|
</div>
|
|
4691
3972
|
${e === "replace" ? i`
|
|
4692
3973
|
<div class="ft-find-row">
|
|
4693
|
-
<input class="ft-find-replace-input" type="text" placeholder=${
|
|
3974
|
+
<input class="ft-find-replace-input" type="text" placeholder=${O("replaceWithPlaceholder")}
|
|
4694
3975
|
.value=${n}
|
|
4695
3976
|
@input=${(e) => {
|
|
4696
3977
|
this._findState.replaceWith = e.target.value;
|
|
4697
3978
|
}}>
|
|
4698
|
-
<button @click=${() => this._replaceOne()} ?disabled=${c === 0}>${
|
|
4699
|
-
<button @click=${() => this._replaceAll()} ?disabled=${c === 0}>${
|
|
3979
|
+
<button @click=${() => this._replaceOne()} ?disabled=${c === 0}>${O("replace")}</button>
|
|
3980
|
+
<button @click=${() => this._replaceAll()} ?disabled=${c === 0}>${O("replaceAll")}</button>
|
|
4700
3981
|
</div>
|
|
4701
3982
|
` : ""}
|
|
4702
3983
|
</div>
|
|
4703
3984
|
`;
|
|
4704
3985
|
}
|
|
4705
3986
|
render() {
|
|
4706
|
-
let e = this.visibleColumns, t = this.importEnabled && this._isDragOver ? i`<div class="ft-import-overlay">${
|
|
4707
|
-
if (e.length === 0) return i`${t}${n}<div class="ft-empty">${
|
|
3987
|
+
let e = this.visibleColumns, t = this.importEnabled && this._isDragOver ? i`<div class="ft-import-overlay">${O("dropFileToImport")}</div>` : a, n = this.loading ? i`<div class="ft-loading-overlay"></div>` : a;
|
|
3988
|
+
if (e.length === 0) return i`${t}${n}<div class="ft-empty">${O("noColumnsDefined")}</div>`;
|
|
4708
3989
|
let r = this.headerHeight, o = this._totalRowWidth, { start: s, end: c } = this.visibleColRange, l = [];
|
|
4709
3990
|
for (let t = 0; t < e.length; t++) (e[t].pinned === "left" || e[t].pinned === "right") && (t < s || t >= c) && l.push(t);
|
|
4710
3991
|
let u = 0, d = this._scrollLeft, f = this.selectable ? i`<div class="ft-checkbox-header"
|
|
@@ -4852,18 +4133,18 @@ var q = {
|
|
|
4852
4133
|
${this._renderEditor(e, t)}
|
|
4853
4134
|
</div>
|
|
4854
4135
|
`;
|
|
4855
|
-
let _ = o || c, v = this._isCellInvalid(n, r), y = (this._findState?.results ?? []).findIndex((e) => e.row === n && e.col === r),
|
|
4136
|
+
let _ = o || c, v = this._isCellInvalid(n, r), y = (this._findState?.results ?? []).findIndex((e) => e.row === n && e.col === r), x = y >= 0, S = x && y === this._findState.currentIndex, C = [
|
|
4856
4137
|
"ft-cell",
|
|
4857
4138
|
`ft-type-${t.type ?? "text"}`,
|
|
4858
|
-
`ft-align-${
|
|
4139
|
+
`ft-align-${G(t)}`,
|
|
4859
4140
|
o ? "ft-active" : "",
|
|
4860
4141
|
c ? "ft-selected" : "",
|
|
4861
4142
|
d ? "ft-pinned" : "",
|
|
4862
4143
|
v ? "ft-invalid" : "",
|
|
4863
|
-
|
|
4864
|
-
].filter(Boolean).join(" "),
|
|
4144
|
+
S ? "ft-find-current" : x ? "ft-find-match" : ""
|
|
4145
|
+
].filter(Boolean).join(" "), w = this._toDataIndex(n), T = this._comments.get(w)?.get(t.key) ?? null, E = T !== null, D = E ? i`<div class="ft-comment-indicator" title=${T}></div>` : a;
|
|
4865
4146
|
return i`
|
|
4866
|
-
<div class=${
|
|
4147
|
+
<div class=${E ? C + " ft-has-comment" : C}
|
|
4867
4148
|
role="gridcell"
|
|
4868
4149
|
data-col-index=${r}
|
|
4869
4150
|
aria-selected=${_ ? "true" : "false"}
|
|
@@ -4875,8 +4156,8 @@ var q = {
|
|
|
4875
4156
|
@mouseenter=${() => this._onCellMouseEnter(n, r)}
|
|
4876
4157
|
@click=${(e) => this._onCellClickEvent(e, n, r)}
|
|
4877
4158
|
@dblclick=${() => this._onCellDblClick(n, r)}>
|
|
4878
|
-
${
|
|
4879
|
-
${
|
|
4159
|
+
${D}
|
|
4160
|
+
${b(e[t.key], e, t)}
|
|
4880
4161
|
</div>
|
|
4881
4162
|
`;
|
|
4882
4163
|
}
|
|
@@ -5014,4 +4295,4 @@ K([s({ type: Array })], $.prototype, "columns", void 0), K([s({
|
|
|
5014
4295
|
attribute: "max-undo-size"
|
|
5015
4296
|
})], $.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")], $);
|
|
5016
4297
|
//#endregion
|
|
5017
|
-
export {
|
|
4298
|
+
export { k as a, A as i, G as n, D as o, B as r, b as s, $ as t };
|