data-primals-engine 1.2.4 → 1.2.5

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.
@@ -2,7 +2,9 @@
2
2
  export const websiteTranslations = {
3
3
  fr: {
4
4
  translation: {
5
-
5
+ "dataimporter.excelPreview":"Aperçu des données Excel",
6
+ "dataimporter.previewNote": "Note: Ceci est un aperçu des premières lignes. Les cellules vides sont affichées comme \"(vide)\".",
7
+ "dataimporter.nullValue": "(vide)",
6
8
  "cb.searchOperator": "Rechercher un opérateur...",
7
9
  "cb.changeOperator": "Changer d'opérateur",
8
10
  "cb.deleteBlock": "Supprimer ce bloc",
@@ -196,7 +198,7 @@ export const websiteTranslations = {
196
198
  "btns.clear": "Effacer",
197
199
  "prez2.5": "Un backup quotidien gratuit et sécurisé, ainsi que l'intégration aux services de stockage Amazon S3.",
198
200
  "prez4.4": "Transférez vos données aux formats JSON / CSV",
199
- "dataimporter.csvColumn":"Numéro de colonne du CSV",
201
+ "dataimporter.columnType":"Colonne {{0}}",
200
202
  "dataimporter.field":"Champ du modèle",
201
203
  "dataimporter.column":"Colonne n°{{0}}",
202
204
  "dataimporter.addColumn": "Ajouter une colonne",
@@ -421,7 +423,7 @@ export const websiteTranslations = {
421
423
  "btns.import": "Importer",
422
424
  "dataimporter.title": "Importer des données dans {{model}}",
423
425
  "dataimporter.hasCsvHeaders": "Le fichier CSV contient-il une ligne d'en-têtes ?",
424
- "dataimporter.info": "Importez votre fichier JSON ou CSV contenant les données obligatoires de votre modèle. Vos données seront copiées sur votre base de donnée personnelle. Le taux de transfert est de {{constante}}",
426
+ "dataimporter.info": "Importez votre fichier Excel, JSON ou CSV contenant les données obligatoires de votre modèle. Vos données seront copiées sur votre base de donnée personnelle. Le taux de transfert est de {{constante}}",
425
427
  "cgu.h1": "Conditions Générales d'Utilisation (CGU)",
426
428
  "cgu.h1.1": "1. Introduction",
427
429
  "cgu.h1.2": "2. Description du Service",
@@ -530,6 +532,9 @@ export const websiteTranslations = {
530
532
  },
531
533
  en: {
532
534
  translation: {
535
+ "dataimporter.excelPreview": "Excel Data Preview",
536
+ "dataimporter.previewNote": "Note: This is a preview of the first few rows. Empty cells are displayed as \"(empty)\".",
537
+ "dataimporter.nullValue": "(empty)",
533
538
  "cb.searchOperator": "Search for an operator...",
534
539
  "cb.changeOperator": "Change operator",
535
540
  "cb.deleteBlock": "Delete this block",
@@ -1159,7 +1164,7 @@ export const websiteTranslations = {
1159
1164
  "api.validate.sameType": "Attribute '{{0}}' must be the same type as attribute '{{1}}' ({{2}}).",
1160
1165
  "api.validate.fieldFunction": "Attribute '{{0}}' must be a function.",
1161
1166
  "api.model.deleteFailed": "The data model has been successfully deleted.",
1162
- "dataimporter.csvColumn": "CSV column number",
1167
+ "dataimporter.columnType":"Column {{0}}",
1163
1168
  "dataimporter.field": "Template field",
1164
1169
  "dataimporter.column": "Column number {{0}}",
1165
1170
  "dataimporter.addColumn": "Add column",
@@ -1934,6 +1939,9 @@ export const websiteTranslations = {
1934
1939
  },
1935
1940
  es: {
1936
1941
  translation: {
1942
+ "dataimporter.excelPreview": "Vista previa de datos de Excel",
1943
+ "dataimporter.previewNote": "Nota: Esta es una vista previa de las primeras filas. Las celdas vacías se muestran como \"(vacío)\".",
1944
+ "dataimporter.nullValue": "(vacío)",
1937
1945
  "cb.searchOperator": "Buscar un operador...",
1938
1946
  "cb.changeOperator": "Cambiar operador",
1939
1947
  "cb.deleteBlock": "Eliminar este bloque",
@@ -2566,7 +2574,7 @@ export const websiteTranslations = {
2566
2574
  "api.validate.sameType": "El atributo '{{0}}' debe ser del mismo tipo que el atributo '{{1}}' ({{2}}).",
2567
2575
  "api.validate.fieldFunction": "El atributo '{{0}}' debe ser una función.",
2568
2576
  "api.model.deleteFailed": "El modelo de datos se ha eliminado correctamente.",
2569
- "dataimporter.csvColumn": "Número de columna CSV",
2577
+ "dataimporter.columnType": "Columna {{0}}",
2570
2578
  "dataimporter.field": "Campo de plantilla",
2571
2579
  "dataimporter.column": "Número de columna {{0}}",
2572
2580
  "dataimporter.addColumn": "Añadir columna",
@@ -2886,7 +2894,7 @@ export const websiteTranslations = {
2886
2894
  "btns.import": "Importar",
2887
2895
  "dataimporter.title": "Importar datos a {{model}}",
2888
2896
  "dataimporter.hasCsvHeaders": "¿El archivo CSV contiene una fila de encabezado?",
2889
- "dataimporter.info": "Importa tu archivo JSON o CSV con los datos necesarios para tu modelo. Tus datos se copiarán a tu base de datos personal. La velocidad de transferencia es {{constante}}",
2897
+ "dataimporter.info": "Importe su archivo Excel, JSON o CSV con los datos necesarios para su plantilla. Sus datos se copiarán a su base de datos personal. La velocidad de transferencia es {{constante}}",
2890
2898
  "links.demo": "Iniciar la demostración",
2891
2899
  "filterstringfield.placeholder.regex": 'Expresión regular',
2892
2900
  "cgu.h1": "Condiciones Generales de Uso (CGU)",
@@ -3343,6 +3351,9 @@ export const websiteTranslations = {
3343
3351
  },
3344
3352
  pt: {
3345
3353
  translation: {
3354
+ "dataimporter.excelPreview": "Visualização de Dados do Excel",
3355
+ "dataimporter.previewNote": "Observação: Esta é uma visualização das primeiras linhas. Células vazias são exibidas como \"(vazio)\".",
3356
+ "dataimporter.nullValue": "(vazio)",
3346
3357
  "cb.searchOperator": "Procurar um operador...",
3347
3358
  "cb.changeOperator": "Alterar operador",
3348
3359
  "cb.deleteBlock": "Apagar este bloco",
@@ -3975,10 +3986,9 @@ export const websiteTranslations = {
3975
3986
  "api.validate.sameType": "O atributo '{{0}}' deve ser do mesmo tipo que o atributo '{{1}}' ({{2}}).",
3976
3987
  "api.validate.fieldFunction": "O atributo '{{0}}' deve ser uma função.",
3977
3988
  "api.model.deleteFailed": "O modelo de dados foi eliminado com sucesso.",
3978
- "dataimporter.csvColumn": "Número da coluna CSV",
3979
3989
  "dataimporter.field": "Campo de modelo",
3980
- "dataimporter. column": "Número da coluna {{0}}",
3981
- "dataimporter. addColumn": "Adicionar coluna",
3990
+ "dataimporter.column": "Número da coluna {{0}}",
3991
+ "dataimporter.addColumn": "Adicionar coluna",
3982
3992
  "backup.prez": "Todos os dias, a partir das 00:00, é realizado um backup pelos serviços Primals para cada utilizador. Aqui pode definir a localização do seu bucket Amazon S3 que será utilizado para armazenar os seus backups ou deixá-lo em branco para utilizar o armazenamento padrão.",
3983
3993
  "backup.s3config.title": "Configuração de Armazenamento S3",
3984
3994
  "backup.s3config.bucketName": "Nome do Bucket S3",
@@ -4297,7 +4307,7 @@ export const websiteTranslations = {
4297
4307
  "btns.import": "Importar",
4298
4308
  "dataimporter.title": "Importar dados para {{model}}",
4299
4309
  "dataimporter.hasCsvHeaders": "O ficheiro CSV contém uma linha de cabeçalho?",
4300
- "dataimporter.info": "Importe o seu ficheiro JSON ou CSV contendo os dados necessários para o seu modelo. Os seus dados serão copiados para a sua base de dados pessoal. A taxa de transferência é {{constante}}",
4310
+ "dataimporter.info": "Importe seu arquivo Excel, JSON ou CSV contendo os dados necessários para o seu modelo. Seus dados serão copiados para seu banco de dados pessoal. A taxa de transferência é {{constant}}",
4301
4311
  "links.demo": "Iniciar a demonstração",
4302
4312
  "filterstringfield.placeholder.regex": 'Expressão regular',
4303
4313
  "cgu.h1": "Termos e Condições Gerais de Uso (TCGU)",
@@ -4748,6 +4758,9 @@ export const websiteTranslations = {
4748
4758
  },
4749
4759
  de: {
4750
4760
  translation: {
4761
+ "dataimporter.excelPreview": "Excel-Datenvorschau",
4762
+ "dataimporter.previewNote": "Hinweis: Dies ist eine Vorschau der ersten Zeilen. Leere Zellen werden als \"(leer)\" angezeigt.",
4763
+ "dataimporter.nullValue": "(leer)",
4751
4764
  "cb.searchOperator": "Suche nach einem Operator...", "cb.changeOperator": "Operator ändern", "cb.deleteBlock": "Diesen Block löschen", "cb.cancel": "Abbrechen", "cb.enterValue": "Wert eingeben", "cb.convertToExpression": "In Ausdruck konvertieren", "cb.deleteArgument": "Dieses Argument löschen", "cb.condition": "Bedingung", "cb.addArgument": "Argument hinzufügen", "cb.selectRelationField": "Beziehungsfeld auswählen", "cb.enterThisField": "$$this.field eingeben", "cb.enterValueOrField": "Wert oder $field eingeben", "cb.relationTooltip": "Beziehung mit {{relation}}",
4752
4765
 
4753
4766
  "collapse": "Reduzieren",
@@ -5359,7 +5372,7 @@ export const websiteTranslations = {
5359
5372
  "api.validate.sameType": "Attribut '{{0}}' muss vom gleichen Typ sein wie Attribut '{{1}}' ({{2}}).",
5360
5373
  "api.validate.fieldFunction": "Attribut '{{0}}' muss eine Funktion sein.",
5361
5374
  "api.model.deleteFailed": "Das Datenmodell wurde erfolgreich gelöscht.",
5362
- "dataimporter.csvColumn": "CSV-Spaltennummer",
5375
+ "dataimporter.columnType":"Spalte {{0}}",
5363
5376
  "dataimporter.field": "Vorlagenfeld",
5364
5377
  "dataimporter.column": "Spaltennummer {{0}}",
5365
5378
  "dataimporter.addColumn": "Spalte hinzufügen",
@@ -5680,7 +5693,7 @@ export const websiteTranslations = {
5680
5693
  "btns.import": "Importieren",
5681
5694
  "dataimporter.title": "Daten in {{model}} importieren",
5682
5695
  "dataimporter.hasCsvHeaders": "Enthält die CSV-Datei eine Kopfzeile?",
5683
- "dataimporter.info": "Importieren Sie Ihre JSON- oder CSV-Datei mit den benötigten Daten für Ihr Modell. Ihre Daten werden in Ihre persönliche Datenbank kopiert. Die Übertragungsrate beträgt {{constante}}",
5696
+ "dataimporter.info": "Importieren Sie Ihre Excel-, JSON- oder CSV-Datei mit den benötigten Daten für Ihre Vorlage. Ihre Daten werden in Ihre persönliche Datenbank kopiert. Die Übertragungsrate beträgt {{constante}}",
5684
5697
  "links.demo": "Demo starten",
5685
5698
  "filterstringfield.placeholder.regex": 'Regulärer Ausdruck',
5686
5699
  "cgu.h1": "Nutzungsbedingungen (TOU)",
@@ -6136,6 +6149,9 @@ export const websiteTranslations = {
6136
6149
  },
6137
6150
  it: {
6138
6151
  translation: {
6152
+ "dataimporter.excelPreview": "Anteprima dati Excel",
6153
+ "dataimporter.previewNote": "Nota: questa è un'anteprima delle prime righe. Le celle vuote vengono visualizzate come \"(vuoto)\".",
6154
+ "dataimporter.nullValue": "(vuoto)",
6139
6155
  "cb.searchOperator": "Cerca un operatore...",
6140
6156
  "cb.changeOperator": "Cambia operatore",
6141
6157
  "cb.deleteBlock": "Elimina questo blocco",
@@ -6768,7 +6784,7 @@ export const websiteTranslations = {
6768
6784
  "api.validate.sameType": "L'attributo '{{0}}' deve essere dello stesso tipo dell'attributo '{{1}}' ({{2}}).",
6769
6785
  "api.validate.fieldFunction": "L'attributo '{{0}}' deve essere una funzione.",
6770
6786
  "api.model.deleteFailed": "Il modello di dati è stato eliminato correttamente.",
6771
- "dataimporter.csvColumn": "Numero colonna CSV",
6787
+ "dataimporter.columnType":"Colonna {{0}}",
6772
6788
  "dataimporter.field": "Campo modello",
6773
6789
  "dataimporter.column": "Numero colonna {{0}}",
6774
6790
  "dataimporter.addColumn": "Aggiungi colonna",
@@ -7086,7 +7102,7 @@ export const websiteTranslations = {
7086
7102
  "btns.import": "Importa",
7087
7103
  "dataimporter.title": "Importa dati in {{model}}",
7088
7104
  "dataimporter.hasCsvHeaders": "Il file CSV contiene una riga di intestazione?",
7089
- "dataimporter.info": "Importa il tuo file JSON o CSV contenente i dati necessari per il tuo modello. I tuoi dati verranno copiati nel tuo database personale. La velocità di trasferimento è {{constante}}",
7105
+ "dataimporter.info": "Importa il tuo file Excel, JSON o CSV contenente i dati richiesti per il tuo modello. I tuoi dati verranno copiati nel tuo database personale. La velocità di trasferimento è {{constante}}",
7090
7106
  "links.demo": "Avvia la demo",
7091
7107
  "filterstringfield.placeholder.regex": 'Espressione regolare',
7092
7108
  "cgu.h1": "Termini di Utilizzo (TOU)",
@@ -7537,6 +7553,9 @@ export const websiteTranslations = {
7537
7553
  },
7538
7554
  cs: {
7539
7555
  translation: {
7556
+ "dataimporter.excelPreview": "Náhled dat v Excelu",
7557
+ "dataimporter.previewNote": "Poznámka: Toto je náhled prvních několika řádků. Prázdné buňky se zobrazují jako \"(prázdné)\".",
7558
+ "dataimporter.nullValue": "(prázdné)",
7540
7559
  "cb.searchOperator": "Hledat operátor...",
7541
7560
  "cb.changeOperator": "Změnit operátor",
7542
7561
  "cb.deleteBlock": "Smazat tento blok",
@@ -8168,7 +8187,7 @@ export const websiteTranslations = {
8168
8187
  "api.validate.sameType": "Atribut '{{0}}' musí být stejného typu jako atribut '{{1}}' ({{2}}).",
8169
8188
  "api.validate.fieldFunction": "Atribut '{{0}}' musí být funkce.",
8170
8189
  "api.model.deleteFailed": "Datový model byl úspěšně smazán.",
8171
- "dataimporter.csvColumn": "Číslo sloupce CSV",
8190
+ "dataimporter.columnType":"Sloupec {{0}}",
8172
8191
  "dataimporter.field": "Pole šablony",
8173
8192
  "dataimporter.column": "Číslo sloupce {{0}}",
8174
8193
  "dataimporter.addColumn": "Přidat sloupec",
@@ -8482,7 +8501,7 @@ export const websiteTranslations = {
8482
8501
  "btns.import": "Import",
8483
8502
  "dataimporter.title": "Importovat data do {{model}}",
8484
8503
  "dataimporter.hasCsvHeaders": "Obsahuje soubor CSV řádek záhlaví?",
8485
- "dataimporter.info": "Importujte soubor JSON nebo CSV obsahující požadovaná data pro váš model. Vaše data budou zkopírována do vaší osobní databáze. Přenosová rychlost je {{constante}}",
8504
+ "dataimporter.info": "Importujte soubor Excel, JSON nebo CSV obsahující požadovaná data pro vaši šablonu. Vaše data budou zkopírována do vaší osobní databáze. Přenosová rychlost je {{constante}}",
8486
8505
  "links.demo": "Spustit demo",
8487
8506
  "filterstringfield.placeholder.regex": 'Regulární výraz',
8488
8507
  "cgu.h1": "Podmínky použití (TOU)",
@@ -8933,6 +8952,9 @@ export const websiteTranslations = {
8933
8952
  },
8934
8953
  ru: {
8935
8954
  translation: {
8955
+ "dataimporter.excelPreview": "Предварительный просмотр данных Excel",
8956
+ "dataimporter.previewNote": "Примечание: Это предварительный просмотр первых нескольких строк. Пустые ячейки отображаются как \"(пусто)\".",
8957
+ "dataimporter.nullValue": "(пусто)",
8936
8958
  "cb.searchOperator": "Найти оператор...",
8937
8959
  "cb.changeOperator": "Изменить оператор",
8938
8960
  "cb.deleteBlock": "Удалить этот блок",
@@ -9565,7 +9587,7 @@ export const websiteTranslations = {
9565
9587
  "api.validate.sameType": "Атрибут '{{0}}' должен быть того же типа, что и атрибут '{{1}}' ({{2}}).",
9566
9588
  "api.validate.fieldFunction": "Атрибут '{{0}}' должен быть функцией.",
9567
9589
  "api.model.deleteFailed": "Модель данных успешно удалена.",
9568
- "dataimporter.csvColumn": "Номер столбца CSV",
9590
+ "dataimporter.columnType":"Столбец {{0}}",
9569
9591
  "dataimporter.field": "Поле шаблона",
9570
9592
  "dataimporter.column": "Номер столбца {{0}}",
9571
9593
  "dataimporter.addColumn": "Добавить столбец",
@@ -9886,7 +9908,7 @@ export const websiteTranslations = {
9886
9908
  "btns.import": "Импорт",
9887
9909
  "dataimporter.title": "Импортировать данные в {{model}}",
9888
9910
  "dataimporter.hasCsvHeaders": "Содержит ли CSV-файл строку заголовка?",
9889
- "dataimporter.info": "Импортируйте файл JSON или CSV, содержащий необходимые данные для вашей модели. Ваши данные будут скопированы в вашу личную базу данных. Скорость передачи составляет {{constante}}",
9911
+ "dataimporter.info": "Импортируйте файл Excel, JSON или CSV, содержащий необходимые данные для вашего шаблона. Ваши данные будут скопированы в вашу персональную базу данных. Скорость передачи данных составляет {{constante}}",
9890
9912
  "links.demo": "Запустить демо",
9891
9913
  "filterstringfield.placeholder.regex": 'Регулярное выражение',
9892
9914
  "cgu.h1": "Условия использования (TOU)",
@@ -10339,6 +10361,9 @@ export const websiteTranslations = {
10339
10361
  },
10340
10362
  ar: {
10341
10363
  translation: {
10364
+ "dataimporter.excelPreview": "معاينة بيانات إكسل",
10365
+ "dataimporter.previewNote": "ملاحظة: هذه معاينة للصفوف القليلة الأولى. تُعرض الخلايا الفارغة كـ \"(فارغة)\".",
10366
+ "dataimporter.nullValue": "(فارغة)",
10342
10367
  "cb.searchOperator": "ابحث عن مُعامل...",
10343
10368
  "cb.changeOperator": "غيّر المُعامل",
10344
10369
  "cb.deleteBlock": "حذف هذه الكتلة",
@@ -10992,7 +11017,7 @@ export const websiteTranslations = {
10992
11017
  "api.validate.sameType": "يجب أن تكون السمة '{{0}}' من نفس نوع السمة '{{1}}' ({{2}}).",
10993
11018
  "api.validate.fieldFunction": "يجب أن تكون السمة '{{0}}' دالة.",
10994
11019
  "api.model.deleteFailed": "تم حذف نموذج البيانات بنجاح.",
10995
- "dataimporter.csvColumn": "رقم عمود CSV",
11020
+ "dataimporter.columnType":"العمود {{0}}",
10996
11021
  "dataimporter.field": "حقل القالب",
10997
11022
  "dataimporter.column": "رقم العمود {{0}}",
10998
11023
  "dataimporter.addColumn": "إضافة عمود",
@@ -11310,7 +11335,7 @@ export const websiteTranslations = {
11310
11335
  "btns.import": "استيراد",
11311
11336
  "dataimporter.title": "استيراد البيانات إلى {{model}}",
11312
11337
  "dataimporter.hasCsvHeaders": "هل يحتوي ملف CSV على صف رأس؟",
11313
- "dataimporter.info": "استورد ملف JSON أو CSV الذي يحتوي على البيانات المطلوبة لنموذجك. سيتم نسخ بياناتك إلى قاعدة بياناتك الشخصية. معدل النقل ثابت ({{constante}}).",
11338
+ "dataimporter.info": "استورد ملف Excel أو JSON أو CSV الذي يحتوي على البيانات المطلوبة لقالبك. سيتم نسخ بياناتك إلى قاعدة بياناتك الشخصية. معدل النقل ثابت ({{constante}}}).",
11314
11339
  "links.demo": "ابدأ العرض التوضيحي",
11315
11340
  "filterstringfield.placeholder.regex": 'تعبير عادي',
11316
11341
  "cgu.h1": "الشروط العامة للاستخدام (GTU)",
@@ -11762,6 +11787,9 @@ export const websiteTranslations = {
11762
11787
  },
11763
11788
  sv: {
11764
11789
  translation: {
11790
+ "dataimporter.excelPreview": "Förhandsgranskning av Excel-data",
11791
+ "dataimporter.previewNote": "Obs! Detta är en förhandsgranskning av de första raderna. Tomma celler visas som \"(tomma)\"",
11792
+ "dataimporter.nullValue": "(tomma)",
11765
11793
  "cb.searchOperator": "Sök efter en operator...",
11766
11794
  "cb.changeOperator": "Ändra operator",
11767
11795
  "cb.deleteBlock": "Ta bort detta block",
@@ -12399,7 +12427,7 @@ export const websiteTranslations = {
12399
12427
  "api.validate.sameType": "Attributet '{{0}}' måste vara av samma typ som attributet '{{1}}' ({{2}}).",
12400
12428
  "api.validate.fieldFunction": "Attributet '{{0}}' måste vara en funktion.",
12401
12429
  "api.model.deleteFailed": "Datamodellen har raderats.",
12402
- "dataimporter.csvColumn": "CSV-kolumnnummer",
12430
+ "dataimporter.kolumntyp": "Kolumn {{0}}",
12403
12431
  "dataimporter.field": "Mallfält",
12404
12432
  "dataimporter.column": "Kolumnnummer {{0}}",
12405
12433
  "dataimporter.addColumn": "Lägg till kolumn",
@@ -12710,7 +12738,7 @@ export const websiteTranslations = {
12710
12738
  "btns.import": "Importera",
12711
12739
  "dataimporter.title": "Importera data till {{model}}",
12712
12740
  "dataimporter.hasCsvHeaders": "Innehåller CSV-filen en rubrikrad?",
12713
- "dataimporter.info": "Importera din JSON- eller CSV-fil som innehåller den data som krävs för din modell. Dina data kommer att kopieras till din personliga databas. Överföringshastigheten är {{constante}}",
12741
+ "dataimporter.info": "Importera din Excel-, JSON- eller CSV-fil som innehåller den data som krävs för din mall. Dina data kommer att kopieras till din personliga databas. Överföringshastigheten är {{constant}}",
12714
12742
  "links.demo": "Starta demon",
12715
12743
  "filterstringfield.placeholder.regex": 'Reguljärt uttryck',
12716
12744
  "cgu.h1": "Användarvillkor (Användarvillkor)",
@@ -13158,6 +13186,9 @@ export const websiteTranslations = {
13158
13186
  },
13159
13187
  el: {
13160
13188
  translation: {
13189
+ "dataimporter.excelPreview": "Προεπισκόπηση δεδομένων Excel",
13190
+ "dataimporter.previewNote": "Σημείωση: Αυτή είναι μια προεπισκόπηση των πρώτων γραμμών. Τα κενά κελιά εμφανίζονται ως \"(κενό)\".",
13191
+ "dataimporter.nullValue": "(κενό)",
13161
13192
  "cb.searchOperator": "Αναζήτηση τελεστή...",
13162
13193
  "cb.changeOperator": "Αλλαγή τελεστή",
13163
13194
  "cb.deleteBlock": "Διαγραφή αυτού του μπλοκ",
@@ -13801,7 +13832,7 @@ export const websiteTranslations = {
13801
13832
  "api.validate.sameType": "Το χαρακτηριστικό '{{0}}' πρέπει να είναι του ίδιου τύπου με το χαρακτηριστικό '{{1}}' ({{2}}).",
13802
13833
  "api.validate.fieldFunction": "Το χαρακτηριστικό '{{0}}' πρέπει να είναι συνάρτηση.",
13803
13834
  "api.model.deleteFailed": "Το μοντέλο δεδομένων διαγράφηκε με επιτυχία.",
13804
- "dataimporter.csvColumn": "Αριθμός στήλης CSV",
13835
+ "dataimporter.columnType":"Στήλη {{0}}",
13805
13836
  "dataimporter.field": "Πεδίο προτύπου",
13806
13837
  "dataimporter.column": "Αριθμός στήλης {{0}}",
13807
13838
  "dataimporter.addColumn": "Προσθήκη στήλης",
@@ -14111,7 +14142,7 @@ export const websiteTranslations = {
14111
14142
  "btns.import": "Εισαγωγή",
14112
14143
  "dataimporter.title": "Εισαγωγή δεδομένων στο {{model}}",
14113
14144
  "dataimporter.hasCsvHeaders": "Περιέχει το αρχείο CSV μια γραμμή κεφαλίδας;",
14114
- "dataimporter.info": "Εισαγάγετε το αρχείο JSON που περιέχει τα απαιτούμενα δεδομένα για το μοντέλο σας. Τα δεδομένα σας θα αντιγραφούν στην προσωπική σας βάση δεδομένων. Ο ρυθμός μεταφοράς είναι {{constante}}",
14145
+ "dataimporter.info": "Εισαγάγετε το αρχείο Excel, JSON ή CSV που περιέχει τα απαιτούμενα δεδομένα για το πρότυπό σας. Τα δεδομένα σας θα αντιγραφούν στην προσωπική σας βάση δεδομένων. Ο ρυθμός μεταφοράς είναι {{constante}}",
14115
14146
  "links.demo": "Έναρξη της επίδειξης",
14116
14147
  "filterstringfield.placeholder.regex": "Κανονική έκφραση",
14117
14148
  "cgu.h1": "Γενικοί όροι χρήσης (GTU)",
@@ -14561,6 +14592,9 @@ export const websiteTranslations = {
14561
14592
  },
14562
14593
  fa: {
14563
14594
  "translation": {
14595
+ "dataimporter.excelPreview": "پیش‌نمایش داده‌های اکسل",
14596
+ "dataimporter.previewNote": "توجه: این پیش‌نمایشی از چند ردیف اول است. سلول‌های خالی به صورت \"(empty)\" نمایش داده می‌شوند.",
14597
+ "dataimporter.nullValue": "(empty)",
14564
14598
  "links.demo": "شروع نسخهٔ نمایشی",
14565
14599
  "cb.searchOperator": "جستجوی یک عملگر...",
14566
14600
  "cb.changeOperator": "تغییر عملگر",
@@ -15182,7 +15216,7 @@ export const websiteTranslations = {
15182
15216
  "api.model.deleteFailed": "مدل داده با موفقیت حذف شد.",
15183
15217
  "prez2.5": "پشتیبان‌گیری روزانه رایگان و ایمن، و همچنین ادغام با خدمات ذخیره‌سازی Amazon S3.",
15184
15218
  "prez4.4": "داده‌های خود را در قالب‌های JSON / CSV انتقال دهید",
15185
- "dataimporter.csvColumn":"شماره ستون CSV",
15219
+ "dataimporter.columnType":"ستون {{0}}",
15186
15220
  "dataimporter.field":"فیلد مدل",
15187
15221
  "dataimporter.column":"ستون شماره {{0}}",
15188
15222
  "dataimporter.addColumn": "افزودن ستون",
@@ -15476,7 +15510,7 @@ export const websiteTranslations = {
15476
15510
  "btns.import": "وارد کردن",
15477
15511
  "dataimporter.title": "وارد کردن داده به {{model}}",
15478
15512
  "dataimporter.hasCsvHeaders": "آیا فایل CSV شامل ردیف عنوان است؟",
15479
- "dataimporter.info": "فایل JSON یا CSV خود را که شامل داده‌های الزامی مدل شما است وارد کنید. داده‌های شما در پایگاه داده شخصی شما کپی می‌شوند. نرخ انتقال {{constante}} است",
15513
+ "dataimporter.info": "فایل اکسل، JSON یا CSV حاوی داده‌های مورد نیاز برای قالب خود را وارد کنید. داده‌های شما در پایگاه داده شخصی شما کپی می‌شوند. سرعت انتقال {{constante}} است.",
15480
15514
  "cgu.h1": "شرایط عمومی استفاده (CGU)",
15481
15515
  "cgu.h1.1": "1. مقدمه",
15482
15516
  "cgu.h1.2": "2. توضیح خدمات",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-primals-engine",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "data-primals-engine is a package responsible from handling large amount of data using MongoDB in a practical and performant way. It can also get workflow models working (for automation), and fully supports internationalisation. It also has integrated AI assistant.",
5
5
  "main": "src/engine.js",
6
6
  "type": "module",
@@ -83,6 +83,7 @@
83
83
  "randomcolor": "^0.6.2",
84
84
  "react-i18next": "^15.6.1",
85
85
  "react-markdown": "^10.1.0",
86
+ "read-excel-file": "^5.8.8",
86
87
  "request-ip": "^3.3.0",
87
88
  "sanitize-html": "^2.17.0",
88
89
  "sirv": "^3.0.1",
package/src/data.js CHANGED
@@ -405,6 +405,14 @@ export function conditionToApiSearchFilter(condition) {
405
405
 
406
406
 
407
407
  export const getFieldValueHash = (model, data) => {
408
+ // Prioritize composite unique constraints if they exist
409
+ const uniqueConstraints = model.constraints?.filter(c => c.type === 'unique') || [];
410
+
411
+ if (uniqueConstraints.length > 0) {
412
+ // Combine keys from all unique constraints to create a truly unique hash.
413
+ const constraintKeys = [...new Set(uniqueConstraints.flatMap(c => c.keys))];
414
+ return getObjectHash(data, constraintKeys, 'constraint');
415
+ }
408
416
  const uniqueFields = model.fields.filter(f => f.unique).map(m => m.name);
409
417
  const fs = model.fields.map(m => m.name);
410
418
  const fields = ['_model', '_user', ...(uniqueFields.length ? uniqueFields : fs)];
@@ -0,0 +1,17 @@
1
+ import NodeCache from "node-cache";
2
+
3
+ export const modelsCache = new NodeCache( { stdTTL: 100, checkperiod: 120 } );
4
+
5
+ export const mongoDBWhitelist = [
6
+ "$$NOW", "$in", "$eq", "$gt", "$gte", "$in", "$lt", "$lte", "$ne", "$nin", "$type", "$size",
7
+ "$and", "$not", "$nor", "$or", "$regexMatch", "$find", "$elemMatch", "$filter", "$toString", "$toObjectId",
8
+ "$concat",
9
+ '$add', '$subtract', '$multiply', '$divide', '$mod', '$pow', "$sqrt",
10
+ "$rand",
11
+ "$abs", '$sin', '$cos', '$tan', '$asin', '$acos', '$atan',
12
+ "$toDate", "$toBool", "$toString", "$toInt", "$toDouble",
13
+ "$dateDiff", "$dateSubtract", "$dateAdd", "$dateToString",
14
+ '$year', '$month', '$week', '$dayOfMonth', '$dayOfWeek', '$dayOfYear', '$hour', '$minute', '$second', '$millisecond'
15
+ ];
16
+ export let importJobs = {};
17
+