@iyulab/flex-table 0.40.0 → 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.
- package/CHANGELOG.md +40 -0
- package/README.md +6 -6
- package/dist/clipboard/clipboard.d.ts +2 -6
- package/dist/{flex-table-CDEu8YQE.js → flex-table-CbIsTvod.js} +221 -933
- package/dist/flex-table.js +1 -1
- package/dist/react-events.test.d.ts +1 -0
- package/dist/react.d.ts +7 -0
- package/dist/react.js +9 -2
- package/package.json +3 -2
- package/skills/iyulab-flex-table/SKILL.md +135 -0
- package/skills/iyulab-flex-table/references/api.md +173 -0
- package/skills/iyulab-flex-table/references/react.md +177 -0
- package/skills/iyulab-flex-table/references/styling.md +108 -0
|
@@ -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 j = 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 j = 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 j = 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 j = 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 ce(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 le = 100, N = 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 ue(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 P(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 F(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 de = (() => {
|
|
|
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,32 +1428,32 @@ function xe(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
|
}
|
|
@@ -2177,20 +1463,20 @@ function B(e, t, n) {
|
|
|
2177
1463
|
switch (n) {
|
|
2178
1464
|
case "csv": return V(e, t, ",");
|
|
2179
1465
|
case "tsv": return V(e, t, " ");
|
|
2180
|
-
case "json": return
|
|
2181
|
-
case "xlsx": return
|
|
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
1473
|
function V(e, t, n) {
|
|
2188
|
-
return [t.map((e) => H(e.label, n)).join(n), ...e.map((e) => t.map((t) => H(
|
|
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
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 we(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 je(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 Me(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
|
|
1555
|
+
var Ee = new TextDecoder("utf-8");
|
|
2270
1556
|
function U(e) {
|
|
2271
|
-
let t =
|
|
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
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,29 +1582,29 @@ var Le = /* @__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
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
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
|
|
1607
|
+
function Ne(e, t, n, r) {
|
|
2322
1608
|
let i = U(e).querySelectorAll("row");
|
|
2323
1609
|
if (i.length === 0) return [];
|
|
2324
1610
|
let a = 0, o = /* @__PURE__ */ new Map();
|
|
@@ -2326,7 +1612,7 @@ function He(e, t, n, r) {
|
|
|
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 He(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 He(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 W(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: []
|
|
@@ -2394,14 +1680,14 @@ var q = {
|
|
|
2394
1680
|
lt: "<",
|
|
2395
1681
|
gte: "≥",
|
|
2396
1682
|
lte: "≤"
|
|
2397
|
-
}, 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 {
|
|
2398
1684
|
constructor(...e) {
|
|
2399
|
-
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 = () => {
|
|
2400
1686
|
this._commitCommentPopup();
|
|
2401
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();
|
|
2402
1688
|
}
|
|
2403
1689
|
static {
|
|
2404
|
-
this.styles =
|
|
1690
|
+
this.styles = h;
|
|
2405
1691
|
}
|
|
2406
1692
|
get data() {
|
|
2407
1693
|
return this._data;
|
|
@@ -2766,7 +2052,7 @@ var q = {
|
|
|
2766
2052
|
return B(this._sortedIndices.map((e) => this.data[e]), this.visibleColumns, e);
|
|
2767
2053
|
}
|
|
2768
2054
|
exportToFile(e, t) {
|
|
2769
|
-
|
|
2055
|
+
ge(this.exportToString(e), t ?? `export${be(e)}`, ye(e));
|
|
2770
2056
|
}
|
|
2771
2057
|
setComment(e, t, n) {
|
|
2772
2058
|
let r = this.getComment(e, t);
|
|
@@ -2823,11 +2109,11 @@ var q = {
|
|
|
2823
2109
|
async importFromFile(e) {
|
|
2824
2110
|
let t = e.name.toLowerCase();
|
|
2825
2111
|
if (t.endsWith(".xlsx")) {
|
|
2826
|
-
let t = await
|
|
2112
|
+
let t = await Pe(await e.arrayBuffer());
|
|
2827
2113
|
this._applyImportedSheet(t);
|
|
2828
2114
|
} else if (t.endsWith(".csv") || t.endsWith(".tsv")) {
|
|
2829
|
-
let t =
|
|
2830
|
-
this._applyImportedRows(
|
|
2115
|
+
let t = await e.text(), n = f(t);
|
|
2116
|
+
this._applyImportedRows(n);
|
|
2831
2117
|
} else console.warn(`flex-table importFromFile: unsupported file type "${e.name}"`);
|
|
2832
2118
|
}
|
|
2833
2119
|
_applyImportedSheet(e) {
|
|
@@ -2837,7 +2123,7 @@ var q = {
|
|
|
2837
2123
|
let a = t.get(e);
|
|
2838
2124
|
if (!a) return;
|
|
2839
2125
|
let o = this.columns.find((e) => e.key === a);
|
|
2840
|
-
r[a] = o ?
|
|
2126
|
+
r[a] = o ? j(n[i] ?? "", o) : n[i] ?? null;
|
|
2841
2127
|
}), r;
|
|
2842
2128
|
}), r = [...this.data];
|
|
2843
2129
|
this.data = n, this._undo.push({
|
|
@@ -2862,7 +2148,7 @@ var q = {
|
|
|
2862
2148
|
let a = n.get(t);
|
|
2863
2149
|
if (!a) return;
|
|
2864
2150
|
let o = this.columns.find((e) => e.key === a);
|
|
2865
|
-
r[a] = o ?
|
|
2151
|
+
r[a] = o ? j(e[i] ?? "", o) : e[i] ?? null;
|
|
2866
2152
|
}), r;
|
|
2867
2153
|
}), i = [...this.data];
|
|
2868
2154
|
this.data = r, this._undo.push({
|
|
@@ -3016,7 +2302,7 @@ var q = {
|
|
|
3016
2302
|
this._filteredIndices = Array.from({ length: this.data.length }, (e, t) => t), this._sortedIndices = this._filteredIndices;
|
|
3017
2303
|
return;
|
|
3018
2304
|
}
|
|
3019
|
-
if (this._filteredIndices =
|
|
2305
|
+
if (this._filteredIndices = re(this.data, this._filters, (e, t, n) => {
|
|
3020
2306
|
this.dispatchEvent(new CustomEvent("filter-error", {
|
|
3021
2307
|
detail: {
|
|
3022
2308
|
error: e,
|
|
@@ -3046,7 +2332,7 @@ var q = {
|
|
|
3046
2332
|
e !== this._viewportHeight && (this._viewportHeight = e), t !== this._viewportWidth && (this._viewportWidth = t), this._warnIfUnconstrained();
|
|
3047
2333
|
}
|
|
3048
2334
|
_warnIfUnconstrained() {
|
|
3049
|
-
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.`));
|
|
3050
2336
|
}
|
|
3051
2337
|
_onScroll() {
|
|
3052
2338
|
this._scrollTop = this.scrollTop, this._scrollLeft = this.scrollLeft;
|
|
@@ -3176,7 +2462,7 @@ var q = {
|
|
|
3176
2462
|
}
|
|
3177
2463
|
let t = this.shadowRoot?.querySelector(".ft-editor");
|
|
3178
2464
|
if (t) {
|
|
3179
|
-
let n =
|
|
2465
|
+
let n = j(t.value, e);
|
|
3180
2466
|
this._applyEdit(n);
|
|
3181
2467
|
} else this._cancelEdit();
|
|
3182
2468
|
}
|
|
@@ -3250,35 +2536,37 @@ var q = {
|
|
|
3250
2536
|
}));
|
|
3251
2537
|
}
|
|
3252
2538
|
_onEditorKeyDown(e) {
|
|
3253
|
-
if (
|
|
3254
|
-
if (
|
|
3255
|
-
e.
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
e.
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
2539
|
+
if (!m(e)) {
|
|
2540
|
+
if (this._autocompleteState && this._autocompleteState.candidates.length > 0) {
|
|
2541
|
+
if (e.key === "ArrowDown") {
|
|
2542
|
+
e.preventDefault(), e.stopPropagation();
|
|
2543
|
+
let t = this._autocompleteState.candidates.length;
|
|
2544
|
+
this._autocompleteState = {
|
|
2545
|
+
...this._autocompleteState,
|
|
2546
|
+
activeIndex: Math.min(this._autocompleteState.activeIndex + 1, t - 1)
|
|
2547
|
+
};
|
|
2548
|
+
return;
|
|
2549
|
+
}
|
|
2550
|
+
if (e.key === "ArrowUp") {
|
|
2551
|
+
e.preventDefault(), e.stopPropagation(), this._autocompleteState = {
|
|
2552
|
+
...this._autocompleteState,
|
|
2553
|
+
activeIndex: Math.max(this._autocompleteState.activeIndex - 1, -1)
|
|
2554
|
+
};
|
|
2555
|
+
return;
|
|
2556
|
+
}
|
|
2557
|
+
if (e.key === "Enter" && this._autocompleteState.activeIndex >= 0) {
|
|
2558
|
+
e.preventDefault(), e.stopPropagation();
|
|
2559
|
+
let t = this._autocompleteState.candidates[this._autocompleteState.activeIndex];
|
|
2560
|
+
this._selectAutocompleteCandidate(t);
|
|
2561
|
+
return;
|
|
2562
|
+
}
|
|
2563
|
+
if (e.key === "Escape") {
|
|
2564
|
+
e.preventDefault(), e.stopPropagation(), this._autocompleteState = null;
|
|
2565
|
+
return;
|
|
2566
|
+
}
|
|
3279
2567
|
}
|
|
2568
|
+
e.key === "Enter" ? (e.preventDefault(), e.stopPropagation(), this._commitEdit(), this._selection.moveDown(), this._syncActiveCell()) : e.key === "Tab" ? (e.preventDefault(), e.stopPropagation(), this._commitEdit(), e.shiftKey ? this._selection.movePrev() : this._selection.moveNext(), this._syncActiveCell()) : e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), this._cancelEdit());
|
|
3280
2569
|
}
|
|
3281
|
-
e.key === "Enter" ? (e.preventDefault(), e.stopPropagation(), this._commitEdit(), this._selection.moveDown(), this._syncActiveCell()) : e.key === "Tab" ? (e.preventDefault(), e.stopPropagation(), this._commitEdit(), e.shiftKey ? this._selection.movePrev() : this._selection.moveNext(), this._syncActiveCell()) : e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), this._cancelEdit());
|
|
3282
2570
|
}
|
|
3283
2571
|
_getAutocompleteCandidates(e, t) {
|
|
3284
2572
|
let n = t.toLowerCase(), r = /* @__PURE__ */ new Set(), i = [];
|
|
@@ -3316,7 +2604,7 @@ var q = {
|
|
|
3316
2604
|
].includes(t) && this._handleCtrlKey(e)) return;
|
|
3317
2605
|
}
|
|
3318
2606
|
if (t.length !== 0 && this._visibleRowCount !== 0) {
|
|
3319
|
-
if ((e.key === "Enter" || e.key === "F2") && this._activeCell) {
|
|
2607
|
+
if ((e.key === "Enter" || e.key === "F2") && this._activeCell && !m(e)) {
|
|
3320
2608
|
e.preventDefault();
|
|
3321
2609
|
let n = t[this._activeCell.col];
|
|
3322
2610
|
n && this._isCellEditable(n) ? this._startEdit() : e.key === "Enter" && this._fireRowActivate(n);
|
|
@@ -3404,7 +2692,7 @@ var q = {
|
|
|
3404
2692
|
async _handleCopy(e) {
|
|
3405
2693
|
let t = this._selection.getEffectiveRange();
|
|
3406
2694
|
if (!t) return;
|
|
3407
|
-
let n = this.visibleColumns, r =
|
|
2695
|
+
let n = this.visibleColumns, r = ae(this._sortedIndices.map((e) => this.data[e]), n, t);
|
|
3408
2696
|
try {
|
|
3409
2697
|
await navigator.clipboard.writeText(r);
|
|
3410
2698
|
} catch (e) {
|
|
@@ -3430,7 +2718,7 @@ var q = {
|
|
|
3430
2718
|
if (!this._activeCell) return;
|
|
3431
2719
|
let e = await this._readClipboardText();
|
|
3432
2720
|
if (e == null) return;
|
|
3433
|
-
let t =
|
|
2721
|
+
let t = f(e);
|
|
3434
2722
|
if (t.length === 0) return;
|
|
3435
2723
|
let n = this._expandRowsForPaste(this._activeCell.row, t.length), r = this._applyPasteData(this._activeCell, t);
|
|
3436
2724
|
if (r.length > 0 || n.length > 0) {
|
|
@@ -3488,7 +2776,7 @@ var q = {
|
|
|
3488
2776
|
for (let a = 0; a < t[i].length; a++) {
|
|
3489
2777
|
let s = e.col + a;
|
|
3490
2778
|
if (s >= n.length) break;
|
|
3491
|
-
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);
|
|
3492
2780
|
this.data[o][c.key] = u, r.push({
|
|
3493
2781
|
row: o,
|
|
3494
2782
|
col: s,
|
|
@@ -3553,7 +2841,7 @@ var q = {
|
|
|
3553
2841
|
for (let r = e.startCol + 1; r <= e.endCol; r++) {
|
|
3554
2842
|
let e = t[r];
|
|
3555
2843
|
if (!e || !this._isCellEditable(e)) continue;
|
|
3556
|
-
let a =
|
|
2844
|
+
let a = j(o == null ? "" : String(o), e);
|
|
3557
2845
|
n.push({
|
|
3558
2846
|
row: i,
|
|
3559
2847
|
key: e.key,
|
|
@@ -3712,7 +3000,7 @@ var q = {
|
|
|
3712
3000
|
@click=${n ? (t) => this._onHeaderClick(t, e) : void 0}>
|
|
3713
3001
|
${C ? i`
|
|
3714
3002
|
<button class="ft-hidden-col-indicator"
|
|
3715
|
-
title=${
|
|
3003
|
+
title=${O("showHiddenColumns")}
|
|
3716
3004
|
@click=${(t) => {
|
|
3717
3005
|
t.stopPropagation(), this._showHiddenBefore(e);
|
|
3718
3006
|
}}>❯</button>
|
|
@@ -3722,8 +3010,8 @@ var q = {
|
|
|
3722
3010
|
${o >= 0 ? i`<span class="ft-sort-order">${o + 1}</span>` : ""}
|
|
3723
3011
|
<button class="ft-column-menu-btn ${s ? "ft-filter-active" : ""}"
|
|
3724
3012
|
type="button"
|
|
3725
|
-
title=${
|
|
3726
|
-
aria-label=${
|
|
3013
|
+
title=${O("columnMenu")}
|
|
3014
|
+
aria-label=${O("columnMenuFor", { header: e.label })}
|
|
3727
3015
|
aria-haspopup="menu"
|
|
3728
3016
|
aria-expanded=${this._headerMenu?.key === e.key ? "true" : "false"}
|
|
3729
3017
|
@mousedown=${(e) => e.stopPropagation()}
|
|
@@ -3842,26 +3130,26 @@ var q = {
|
|
|
3842
3130
|
}}>${t}</button>
|
|
3843
3131
|
`;
|
|
3844
3132
|
return i`
|
|
3845
|
-
<div class="ft-header-menu" role="menu" aria-label=${
|
|
3133
|
+
<div class="ft-header-menu" role="menu" aria-label=${O("columnMenuRegion", { header: o.label })}
|
|
3846
3134
|
style="position: fixed; left: ${t}px; top: ${n}px; z-index: var(--u-layer-floating, 1000);"
|
|
3847
3135
|
@mousedown=${(e) => e.stopPropagation()}
|
|
3848
3136
|
@keydown=${(e) => this._onHeaderMenuKeydown(e)}>
|
|
3849
3137
|
${o.sortable === !1 ? a : i`
|
|
3850
|
-
${c("sort-asc",
|
|
3851
|
-
${c("sort-desc",
|
|
3138
|
+
${c("sort-asc", O("sortAscending"), () => this._applySortFromMenu(e, "asc"))}
|
|
3139
|
+
${c("sort-desc", O("sortDescending"), () => this._applySortFromMenu(e, "desc"))}
|
|
3852
3140
|
<div class="ft-header-menu-separator" role="separator"></div>
|
|
3853
3141
|
`}
|
|
3854
3142
|
${this.showFilters ? i`
|
|
3855
|
-
${c("filter",
|
|
3856
|
-
${s ? c("clear-filter",
|
|
3143
|
+
${c("filter", O("filter"), () => this._openFilterFromMenu(e))}
|
|
3144
|
+
${s ? c("clear-filter", O("clearFilter"), () => this._clearColumnFilter(e)) : a}
|
|
3857
3145
|
<div class="ft-header-menu-separator" role="separator"></div>
|
|
3858
3146
|
` : a}
|
|
3859
|
-
${c("hide",
|
|
3860
|
-
${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)))}
|
|
3861
3149
|
<div class="ft-header-menu-separator" role="separator"></div>
|
|
3862
|
-
${c("autofit",
|
|
3863
|
-
${c("wider",
|
|
3864
|
-
${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)}
|
|
3865
3153
|
</div>
|
|
3866
3154
|
`;
|
|
3867
3155
|
}
|
|
@@ -3879,26 +3167,26 @@ var q = {
|
|
|
3879
3167
|
}}>${e}</button>
|
|
3880
3168
|
`, f = i`<div class="ft-context-menu-separator" role="separator"></div>`;
|
|
3881
3169
|
return i`
|
|
3882
|
-
<div class="ft-body-context-menu" role="menu" aria-label=${
|
|
3170
|
+
<div class="ft-body-context-menu" role="menu" aria-label=${O("cellActions")}
|
|
3883
3171
|
style="position: fixed; left: ${n}px; top: ${r}px; z-index: var(--u-layer-floating, 1000);"
|
|
3884
3172
|
@mousedown=${(e) => e.stopPropagation()}
|
|
3885
3173
|
@keydown=${(e) => this._onMenuKeydown(e, ".ft-body-context-menu", l)}>
|
|
3886
|
-
${d(
|
|
3174
|
+
${d(O("copy"), () => this._handleCopy(!1))}
|
|
3887
3175
|
${f}
|
|
3888
|
-
${d(
|
|
3889
|
-
${d(
|
|
3890
|
-
${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)}
|
|
3891
3179
|
${f}
|
|
3892
|
-
${d(
|
|
3180
|
+
${d(O("hideColumn"), () => this._setColumnHidden(o.key, !0))}
|
|
3893
3181
|
${f}
|
|
3894
|
-
${d(`${
|
|
3895
|
-
${d(`${
|
|
3182
|
+
${d(`${O("sortAscending")} ↑`, () => this._applySortFromMenu(o.key, "asc"))}
|
|
3183
|
+
${d(`${O("sortDescending")} ↓`, () => this._applySortFromMenu(o.key, "desc"))}
|
|
3896
3184
|
${f}
|
|
3897
|
-
${d(
|
|
3898
|
-
${c ? d(
|
|
3185
|
+
${d(O("filterByThisValue"), () => this.setFilter(o.key, (e) => e === s))}
|
|
3186
|
+
${c ? d(O("clearFilter"), () => this.removeFilter(o.key)) : a}
|
|
3899
3187
|
${f}
|
|
3900
|
-
${d(
|
|
3901
|
-
${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}
|
|
3902
3190
|
</div>
|
|
3903
3191
|
`;
|
|
3904
3192
|
}
|
|
@@ -3930,13 +3218,13 @@ var q = {
|
|
|
3930
3218
|
@mousedown=${(e) => e.stopPropagation()}>
|
|
3931
3219
|
<textarea class="ft-comment-popup-textarea"
|
|
3932
3220
|
rows="4"
|
|
3933
|
-
placeholder=${
|
|
3221
|
+
placeholder=${O("addCommentPlaceholder")}
|
|
3934
3222
|
@keydown=${(e) => {
|
|
3935
3223
|
e.key === "Escape" && (e.preventDefault(), this._cancelCommentPopup()), e.key === "Enter" && (e.ctrlKey || e.metaKey) && (e.preventDefault(), this._commitCommentPopup());
|
|
3936
3224
|
}}></textarea>
|
|
3937
3225
|
<div class="ft-comment-popup-buttons">
|
|
3938
|
-
<button class="ft-comment-popup-cancel" @click=${() => this._cancelCommentPopup()}>${
|
|
3939
|
-
<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>
|
|
3940
3228
|
</div>
|
|
3941
3229
|
</div>
|
|
3942
3230
|
`;
|
|
@@ -3972,7 +3260,7 @@ var q = {
|
|
|
3972
3260
|
<div class="ft-filter-dropdown" @click=${(e) => e.stopPropagation()}>
|
|
3973
3261
|
${t === "boolean" ? this._renderBooleanFilter(e) : t === "number" ? this._renderNumberFilter(e) : t === "date" || t === "datetime" ? this._renderDateFilter(e) : this._renderTextFilter(e)}
|
|
3974
3262
|
<div class="ft-filter-actions">
|
|
3975
|
-
<button class="ft-filter-clear" @click=${() => this._clearColumnFilter(e.key)}>${
|
|
3263
|
+
<button class="ft-filter-clear" @click=${() => this._clearColumnFilter(e.key)}>${O("clear")}</button>
|
|
3976
3264
|
</div>
|
|
3977
3265
|
</div>
|
|
3978
3266
|
`;
|
|
@@ -4005,7 +3293,7 @@ var q = {
|
|
|
4005
3293
|
let n = this._emptyFilterState.get(e) ?? "";
|
|
4006
3294
|
return i`
|
|
4007
3295
|
<div class="ft-filter-empty-row">
|
|
4008
|
-
<label>${
|
|
3296
|
+
<label>${O("blankCells")}</label>
|
|
4009
3297
|
<select class="ft-filter-mode-select"
|
|
4010
3298
|
.value=${n}
|
|
4011
3299
|
@change=${(n) => {
|
|
@@ -4015,9 +3303,9 @@ var q = {
|
|
|
4015
3303
|
@keydown=${(e) => {
|
|
4016
3304
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4017
3305
|
}}>
|
|
4018
|
-
<option value="">${
|
|
4019
|
-
<option value="empty">${
|
|
4020
|
-
<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>
|
|
4021
3309
|
</select>
|
|
4022
3310
|
</div>
|
|
4023
3311
|
`;
|
|
@@ -4093,13 +3381,13 @@ var q = {
|
|
|
4093
3381
|
@keydown=${(e) => {
|
|
4094
3382
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4095
3383
|
}}>
|
|
4096
|
-
<option value="contains">${
|
|
4097
|
-
<option value="starts">${
|
|
4098
|
-
<option value="ends">${
|
|
4099
|
-
<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>
|
|
4100
3388
|
</select>
|
|
4101
3389
|
</div>
|
|
4102
|
-
<input class="ft-filter-input" type="text" placeholder=${
|
|
3390
|
+
<input class="ft-filter-input" type="text" placeholder=${O("searchPlaceholder")}
|
|
4103
3391
|
.value=${t.value}
|
|
4104
3392
|
@input=${(t) => {
|
|
4105
3393
|
let n = t.target.value, r = this._textFilterState.get(e.key) ?? {
|
|
@@ -4150,7 +3438,7 @@ var q = {
|
|
|
4150
3438
|
}}>
|
|
4151
3439
|
${Object.keys(q).map((e) => i`<option value=${e}>${q[e]}</option>`)}
|
|
4152
3440
|
</select>
|
|
4153
|
-
<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")}
|
|
4154
3442
|
.value=${n.value == null ? "" : String(n.value)}
|
|
4155
3443
|
@input=${(n) => {
|
|
4156
3444
|
let r = n.target.value, i = this._numberFilterState.get(e) ?? this._defaultNumState();
|
|
@@ -4211,13 +3499,13 @@ var q = {
|
|
|
4211
3499
|
let t = e.type === "datetime" ? "datetime-local" : "date", n = this._dateFilterState.get(e.key) ?? {};
|
|
4212
3500
|
return i`
|
|
4213
3501
|
<div class="ft-filter-range">
|
|
4214
|
-
<input class="ft-filter-input" type=${t} placeholder=${
|
|
3502
|
+
<input class="ft-filter-input" type=${t} placeholder=${O("fromPlaceholder")}
|
|
4215
3503
|
.value=${n.from ?? ""}
|
|
4216
3504
|
@input=${(t) => this._applyDateFilter(e.key, t, "from")}
|
|
4217
3505
|
@keydown=${(e) => {
|
|
4218
3506
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4219
3507
|
}}>
|
|
4220
|
-
<input class="ft-filter-input" type=${t} placeholder=${
|
|
3508
|
+
<input class="ft-filter-input" type=${t} placeholder=${O("toPlaceholder")}
|
|
4221
3509
|
.value=${n.to ?? ""}
|
|
4222
3510
|
@input=${(t) => this._applyDateFilter(e.key, t, "to")}
|
|
4223
3511
|
@keydown=${(e) => {
|
|
@@ -4243,9 +3531,9 @@ var q = {
|
|
|
4243
3531
|
@keydown=${(e) => {
|
|
4244
3532
|
e.key === "Escape" && (this._openFilterKey = null), e.stopPropagation();
|
|
4245
3533
|
}}>
|
|
4246
|
-
<option value="all">${
|
|
4247
|
-
<option value="true">\u2714 ${
|
|
4248
|
-
<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>
|
|
4249
3537
|
</select>
|
|
4250
3538
|
${this._renderEmptyFilterRow(e.key)}
|
|
4251
3539
|
`;
|
|
@@ -4662,42 +3950,42 @@ var q = {
|
|
|
4662
3950
|
this._closeFindPanel();
|
|
4663
3951
|
return;
|
|
4664
3952
|
}
|
|
4665
|
-
e.key === "Enter" && e.target instanceof HTMLInputElement && e.target.classList.contains("ft-find-input") && (e.shiftKey ? this._findPrev() : this._findNext());
|
|
3953
|
+
e.key === "Enter" && !m(e) && e.target instanceof HTMLInputElement && e.target.classList.contains("ft-find-input") && (e.shiftKey ? this._findPrev() : this._findNext());
|
|
4666
3954
|
}}>
|
|
4667
3955
|
<div class="ft-find-row">
|
|
4668
|
-
<input class="ft-find-input" type="text" placeholder=${
|
|
3956
|
+
<input class="ft-find-input" type="text" placeholder=${O("findPlaceholder")}
|
|
4669
3957
|
.value=${t}
|
|
4670
3958
|
@input=${(e) => {
|
|
4671
3959
|
this._findState.query = e.target.value, this._findSearch();
|
|
4672
3960
|
}}>
|
|
4673
3961
|
<span class="ft-find-count">${c > 0 ? `${l}/${c}` : t ? "0 results" : ""}</span>
|
|
4674
|
-
<button @click=${() => this._findPrev()} title=${
|
|
4675
|
-
<button @click=${() => this._findNext()} title=${
|
|
4676
|
-
<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) => {
|
|
4677
3965
|
this._findState.matchCase = e.target.checked, this._findSearch();
|
|
4678
3966
|
}}> Aa</label>
|
|
4679
|
-
<label title=${
|
|
3967
|
+
<label title=${O("wholeCell")}><input type="checkbox" ?checked=${a} @change=${(e) => {
|
|
4680
3968
|
this._findState.wholeCell = e.target.checked, this._findSearch();
|
|
4681
3969
|
}}> [ ]</label>
|
|
4682
|
-
<button @click=${() => this._closeFindPanel()} title=${
|
|
3970
|
+
<button @click=${() => this._closeFindPanel()} title=${O("closeFind")}>✕</button>
|
|
4683
3971
|
</div>
|
|
4684
3972
|
${e === "replace" ? i`
|
|
4685
3973
|
<div class="ft-find-row">
|
|
4686
|
-
<input class="ft-find-replace-input" type="text" placeholder=${
|
|
3974
|
+
<input class="ft-find-replace-input" type="text" placeholder=${O("replaceWithPlaceholder")}
|
|
4687
3975
|
.value=${n}
|
|
4688
3976
|
@input=${(e) => {
|
|
4689
3977
|
this._findState.replaceWith = e.target.value;
|
|
4690
3978
|
}}>
|
|
4691
|
-
<button @click=${() => this._replaceOne()} ?disabled=${c === 0}>${
|
|
4692
|
-
<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>
|
|
4693
3981
|
</div>
|
|
4694
3982
|
` : ""}
|
|
4695
3983
|
</div>
|
|
4696
3984
|
`;
|
|
4697
3985
|
}
|
|
4698
3986
|
render() {
|
|
4699
|
-
let e = this.visibleColumns, t = this.importEnabled && this._isDragOver ? i`<div class="ft-import-overlay">${
|
|
4700
|
-
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>`;
|
|
4701
3989
|
let r = this.headerHeight, o = this._totalRowWidth, { start: s, end: c } = this.visibleColRange, l = [];
|
|
4702
3990
|
for (let t = 0; t < e.length; t++) (e[t].pinned === "left" || e[t].pinned === "right") && (t < s || t >= c) && l.push(t);
|
|
4703
3991
|
let u = 0, d = this._scrollLeft, f = this.selectable ? i`<div class="ft-checkbox-header"
|
|
@@ -4845,7 +4133,7 @@ var q = {
|
|
|
4845
4133
|
${this._renderEditor(e, t)}
|
|
4846
4134
|
</div>
|
|
4847
4135
|
`;
|
|
4848
|
-
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 = [
|
|
4849
4137
|
"ft-cell",
|
|
4850
4138
|
`ft-type-${t.type ?? "text"}`,
|
|
4851
4139
|
`ft-align-${G(t)}`,
|
|
@@ -4853,10 +4141,10 @@ var q = {
|
|
|
4853
4141
|
c ? "ft-selected" : "",
|
|
4854
4142
|
d ? "ft-pinned" : "",
|
|
4855
4143
|
v ? "ft-invalid" : "",
|
|
4856
|
-
|
|
4857
|
-
].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;
|
|
4858
4146
|
return i`
|
|
4859
|
-
<div class=${
|
|
4147
|
+
<div class=${E ? C + " ft-has-comment" : C}
|
|
4860
4148
|
role="gridcell"
|
|
4861
4149
|
data-col-index=${r}
|
|
4862
4150
|
aria-selected=${_ ? "true" : "false"}
|
|
@@ -4868,8 +4156,8 @@ var q = {
|
|
|
4868
4156
|
@mouseenter=${() => this._onCellMouseEnter(n, r)}
|
|
4869
4157
|
@click=${(e) => this._onCellClickEvent(e, n, r)}
|
|
4870
4158
|
@dblclick=${() => this._onCellDblClick(n, r)}>
|
|
4871
|
-
${
|
|
4872
|
-
${
|
|
4159
|
+
${D}
|
|
4160
|
+
${b(e[t.key], e, t)}
|
|
4873
4161
|
</div>
|
|
4874
4162
|
`;
|
|
4875
4163
|
}
|
|
@@ -5007,4 +4295,4 @@ K([s({ type: Array })], $.prototype, "columns", void 0), K([s({
|
|
|
5007
4295
|
attribute: "max-undo-size"
|
|
5008
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")], $);
|
|
5009
4297
|
//#endregion
|
|
5010
|
-
export {
|
|
4298
|
+
export { k as a, A as i, G as n, D as o, B as r, b as s, $ as t };
|