@evotecit/canopyx 0.3.5 → 0.3.7
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/CanopyX.Html/Assets/canopyx-calendar.js +4 -3
- package/CanopyX.Html/Assets/canopyx-detail-rows.js +2 -2
- package/CanopyX.Html/Assets/canopyx-filter-editor.js +2 -1
- package/CanopyX.Html/Assets/canopyx-flow-checks.css +24 -0
- package/CanopyX.Html/Assets/canopyx-flow-checks.js +13 -0
- package/CanopyX.Html/Assets/canopyx-flow-command.css +14 -0
- package/CanopyX.Html/Assets/canopyx-flow-command.js +19 -0
- package/CanopyX.Html/Assets/canopyx-flow-consent.css +6 -0
- package/CanopyX.Html/Assets/canopyx-flow-consent.js +8 -0
- package/CanopyX.Html/Assets/canopyx-flow-dialog.css +14 -0
- package/CanopyX.Html/Assets/canopyx-flow-dialog.js +3 -0
- package/CanopyX.Html/Assets/canopyx-flow-drafts.css +17 -0
- package/CanopyX.Html/Assets/canopyx-flow-drafts.js +21 -0
- package/CanopyX.Html/Assets/canopyx-flow-endpoint.js +6 -0
- package/CanopyX.Html/Assets/canopyx-flow-entry.css +1 -0
- package/CanopyX.Html/Assets/canopyx-flow-entry.js +6 -2
- package/CanopyX.Html/Assets/canopyx-flow-host.css +5 -0
- package/CanopyX.Html/Assets/canopyx-flow-host.js +4 -0
- package/CanopyX.Html/Assets/canopyx-flow-links.js +6 -0
- package/CanopyX.Html/Assets/canopyx-flow-module.mjs +6 -2
- package/CanopyX.Html/Assets/canopyx-flow-options.js +25 -0
- package/CanopyX.Html/Assets/canopyx-flow-pick.css +19 -0
- package/CanopyX.Html/Assets/canopyx-flow-pick.js +9 -0
- package/CanopyX.Html/Assets/canopyx-flow-preview.css +11 -0
- package/CanopyX.Html/Assets/canopyx-flow-preview.js +9 -0
- package/CanopyX.Html/Assets/canopyx-flow-records.css +9 -0
- package/CanopyX.Html/Assets/canopyx-flow-records.js +12 -0
- package/CanopyX.Html/Assets/canopyx-flow-tasks.css +29 -0
- package/CanopyX.Html/Assets/canopyx-flow-tasks.js +20 -0
- package/CanopyX.Html/Assets/canopyx-flow.js +48 -45
- package/CanopyX.Html/Assets/canopyx-formatting.js +7 -6
- package/CanopyX.Html/Assets/canopyx-grid-module.mjs +69 -42
- package/CanopyX.Html/Assets/canopyx-grid.css +23 -0
- package/CanopyX.Html/Assets/canopyx-grid.js +69 -42
- package/CanopyX.Html/Assets/canopyx-interactive.js +4 -4
- package/CanopyX.Html/Assets/canopyx-labels-de.js +77 -1
- package/CanopyX.Html/Assets/canopyx-labels-es.js +77 -1
- package/CanopyX.Html/Assets/canopyx-labels-fr.js +77 -1
- package/CanopyX.Html/Assets/canopyx-labels-it.js +77 -1
- package/CanopyX.Html/Assets/canopyx-labels-pl.js +77 -1
- package/CanopyX.Html/Assets/canopyx-live.js +4 -3
- package/CanopyX.Html/Assets/canopyx-matrix.js +3 -3
- package/CanopyX.Html/Assets/canopyx-module.mjs +4 -4
- package/CanopyX.Html/Assets/canopyx-reporting-module.mjs +71 -44
- package/CanopyX.Html/Assets/canopyx-reporting.css +23 -0
- package/CanopyX.Html/Assets/canopyx-reporting.js +71 -44
- package/CanopyX.Html/Assets/canopyx-tree-tools.js +10 -8
- package/CanopyX.Html/Assets/canopyx.js +4 -4
- package/JavaScript/flow.d.ts +180 -9
- package/JavaScript/grid.d.ts +8 -0
- package/JavaScript/locales/de.mjs +77 -1
- package/JavaScript/locales/es.mjs +77 -1
- package/JavaScript/locales/fr.mjs +77 -1
- package/JavaScript/locales/it.mjs +77 -1
- package/JavaScript/locales/pl.mjs +77 -1
- package/JavaScript/protocol.d.ts +1 -1
- package/README.md +6 -2
- package/package.json +3 -1
|
@@ -11,6 +11,7 @@ const labels = Object.freeze({
|
|
|
11
11
|
searchWordTooShort: "Escriba una palabra de al menos {min} caracteres",
|
|
12
12
|
searchFailed: "Error al buscar: {error}",
|
|
13
13
|
columns: "Columnas",
|
|
14
|
+
hiddenColumns: "[one]+{count} columna[other]+{count} columnas",
|
|
14
15
|
gridFilters: "Filtros",
|
|
15
16
|
gridFitContent: "Ajustar al contenido",
|
|
16
17
|
gridUnpin: "Desfijar",
|
|
@@ -243,7 +244,7 @@ const labels = Object.freeze({
|
|
|
243
244
|
gridExportCancelled: "Exportación cancelada",
|
|
244
245
|
gridCancelExport: "Cancelar exportación",
|
|
245
246
|
gridPrint: "Imprimir",
|
|
246
|
-
gridCloseRecord: "Cerrar
|
|
247
|
+
gridCloseRecord: "Cerrar",
|
|
247
248
|
gridContains: "contiene",
|
|
248
249
|
gridStartsWith: "empieza por",
|
|
249
250
|
gridIn: "es uno de estos valores",
|
|
@@ -588,6 +589,80 @@ const labels = Object.freeze({
|
|
|
588
589
|
flowCopied: "Copiado",
|
|
589
590
|
flowSavedIt: "Lo he guardado",
|
|
590
591
|
flowShownOnce: "Se muestra solo una vez. Cópielo ahora.",
|
|
592
|
+
flowTimedOut: "El host no respondió a tiempo.",
|
|
593
|
+
flowNoHostHook: "Ningún host responde a esto.",
|
|
594
|
+
flowOptionsLoading: "Cargando opciones…",
|
|
595
|
+
flowOptionsFailed: "No se pudieron cargar las opciones: {message}",
|
|
596
|
+
flowRetry: "Reintentar",
|
|
597
|
+
flowRunAgain: "Volver a ejecutar",
|
|
598
|
+
flowRunCheckAgain: "Volver a ejecutar «{check}»",
|
|
599
|
+
flowFieldsLoading: "Cargando campos…",
|
|
600
|
+
flowFieldsFailed: "No se pudieron cargar los campos: {message}",
|
|
601
|
+
flowChangedMark: "Modificado",
|
|
602
|
+
flowRecordActions: "Acciones",
|
|
603
|
+
flowRecordCell: "{column}, fila {row}",
|
|
604
|
+
flowRecordRemove: "Quitar la fila {row}",
|
|
605
|
+
flowRecordAdd: "Añadir fila",
|
|
606
|
+
flowRecordsEmpty: "Todavía no hay filas.",
|
|
607
|
+
flowRecordProblem: "Fila {row}: {message}",
|
|
608
|
+
flowRecordsCount: "[one]{count} fila[other]{count} filas",
|
|
609
|
+
flowPickMore: "y {count} más",
|
|
610
|
+
flowPickCount: "[one]{count} elegido[other]{count} elegidos",
|
|
611
|
+
flowPickChosen: "Elegidos",
|
|
612
|
+
flowPickNone: "Todavía no se ha elegido nada.",
|
|
613
|
+
flowChecks: "Comprobaciones",
|
|
614
|
+
flowCancel: "Cancelar",
|
|
615
|
+
flowCheckAcknowledge: "Continuar pese a la advertencia",
|
|
616
|
+
flowCheckRunning: "Comprobando…",
|
|
617
|
+
flowCheckNotRun: "Sin ejecutar",
|
|
618
|
+
flowCheckStale: "Las respuestas cambiaron desde la comprobación",
|
|
619
|
+
flowCheckPassed: "Superada a las {time}",
|
|
620
|
+
flowCheckWarning: "Advertencia a las {time}",
|
|
621
|
+
flowCheckFailed: "Falló a las {time}",
|
|
622
|
+
flowCheckInvalid: "La comprobación no dio una respuesta válida.",
|
|
623
|
+
flowCheckNeeded: "Ejecute «{check}» con estas respuestas.",
|
|
624
|
+
flowCheckNotPassed: "«{check}» no se superó.",
|
|
625
|
+
flowCheckConfirmWarning: "Confirme la advertencia de «{check}».",
|
|
626
|
+
flowTasks: "Tareas",
|
|
627
|
+
flowTasksProgress: "{done} de {count} tareas completadas",
|
|
628
|
+
flowTaskNeedsAction: "Requiere acción",
|
|
629
|
+
flowTaskBlocked: "Aún no se puede empezar",
|
|
630
|
+
flowTasksReview: "Revisar y enviar",
|
|
631
|
+
flowTasksIncomplete: "Complete primero las tareas obligatorias.",
|
|
632
|
+
flowBackToTasks: "Volver a las tareas",
|
|
633
|
+
flowSaveAndReturn: "Guardar y volver",
|
|
634
|
+
flowSaveDraft: "Guardar borrador",
|
|
635
|
+
flowClose: "Cerrar",
|
|
636
|
+
flowDiscardQuestion: "¿Descartar sus respuestas?",
|
|
637
|
+
flowDiscard: "Descartar",
|
|
638
|
+
flowKeepEditing: "Seguir editando",
|
|
639
|
+
flowDraftSaved: "Borrador guardado",
|
|
640
|
+
flowDraftFailed: "No se guardó el borrador.",
|
|
641
|
+
flowDraftFound: "Borrador guardado",
|
|
642
|
+
flowDraftFrom: "Tiene un borrador guardado el {time}.",
|
|
643
|
+
flowDraftStale: "La configuración cambió después de guardar este borrador.",
|
|
644
|
+
flowDraftResume: "Continuar donde lo dejó",
|
|
645
|
+
flowDraftRestart: "Empezar de nuevo",
|
|
646
|
+
flowStartFrom: "Empezar desde",
|
|
647
|
+
flowPresetSave: "Guardar como plantilla",
|
|
648
|
+
flowPresetNone: "Valores predeterminados",
|
|
649
|
+
flowPresetsSaved: "Plantillas guardadas",
|
|
650
|
+
flowPresetApplied: "Se empezó desde {preset}",
|
|
651
|
+
flowPresetName: "Nombre de la plantilla",
|
|
652
|
+
flowPresetFailed: "No se guardó la plantilla.",
|
|
653
|
+
flowPresetSaved: "Plantilla {preset} guardada",
|
|
654
|
+
flowPresetChanges: "[one]Basado en {preset}, {count} cambio[other]Basado en {preset}, {count} cambios",
|
|
655
|
+
flowCommandTab: "Comando",
|
|
656
|
+
flowPatchTab: "JSON patch",
|
|
657
|
+
flowCommandTitle: "Comando equivalente",
|
|
658
|
+
flowPreview: "Vista previa",
|
|
659
|
+
flowPreviewLoading: "Cargando la vista previa…",
|
|
660
|
+
flowPreviewFailed: "No se pudo cargar la vista previa: {message}",
|
|
661
|
+
flowPreviewNone: "Nada que previsualizar.",
|
|
662
|
+
flowConfirmMismatch: "Escriba exactamente {text} para continuar.",
|
|
663
|
+
flowAcknowledgeNeeded: "Confírmelo antes de enviar.",
|
|
664
|
+
flowPresetCurrent: "Configuración actual",
|
|
665
|
+
flowPickOneByOne: "Elija los registros uno a uno o por páginas.",
|
|
591
666
|
matrixRows: "Filas",
|
|
592
667
|
matrixColumns: "Columnas",
|
|
593
668
|
matrixSearch: "Buscar filas y columnas",
|
|
@@ -614,6 +689,7 @@ const labels = Object.freeze({
|
|
|
614
689
|
matrixItemTotal: "{item}: {count}",
|
|
615
690
|
matrixExpandGroup: "Expandir {group}",
|
|
616
691
|
matrixCollapseGroup: "Contraer {group}",
|
|
692
|
+
matrixGroupHeadingCount: "{count}",
|
|
617
693
|
matrixGroupCount: "Elementos: {count}",
|
|
618
694
|
matrixDetails: "Detalles",
|
|
619
695
|
matrixClose: "Cerrar",
|
|
@@ -11,6 +11,7 @@ const labels = Object.freeze({
|
|
|
11
11
|
searchWordTooShort: "Saisissez un mot d'au moins {min} caractères",
|
|
12
12
|
searchFailed: "Échec de la recherche : {error}",
|
|
13
13
|
columns: "Colonnes",
|
|
14
|
+
hiddenColumns: "[one]+{count} colonne[other]+{count} colonnes",
|
|
14
15
|
gridFilters: "Filtres",
|
|
15
16
|
gridFitContent: "Ajuster au contenu",
|
|
16
17
|
gridUnpin: "Désépingler",
|
|
@@ -243,7 +244,7 @@ const labels = Object.freeze({
|
|
|
243
244
|
gridExportCancelled: "Exportation annulée",
|
|
244
245
|
gridCancelExport: "Annuler l'exportation",
|
|
245
246
|
gridPrint: "Imprimer",
|
|
246
|
-
gridCloseRecord: "Fermer
|
|
247
|
+
gridCloseRecord: "Fermer",
|
|
247
248
|
gridContains: "contient",
|
|
248
249
|
gridStartsWith: "commence par",
|
|
249
250
|
gridIn: "est l'une des valeurs",
|
|
@@ -588,6 +589,80 @@ const labels = Object.freeze({
|
|
|
588
589
|
flowCopied: "Copié",
|
|
589
590
|
flowSavedIt: "Je l'ai enregistré",
|
|
590
591
|
flowShownOnce: "Affiché une seule fois. Copiez-le maintenant.",
|
|
592
|
+
flowTimedOut: "L’hôte n’a pas répondu à temps.",
|
|
593
|
+
flowNoHostHook: "Aucun hôte ne répond à cela.",
|
|
594
|
+
flowOptionsLoading: "Chargement des options…",
|
|
595
|
+
flowOptionsFailed: "Impossible de charger les options : {message}",
|
|
596
|
+
flowRetry: "Réessayer",
|
|
597
|
+
flowRunAgain: "Relancer",
|
|
598
|
+
flowRunCheckAgain: "Relancer « {check} »",
|
|
599
|
+
flowFieldsLoading: "Chargement des champs…",
|
|
600
|
+
flowFieldsFailed: "Impossible de charger les champs : {message}",
|
|
601
|
+
flowChangedMark: "Modifié",
|
|
602
|
+
flowRecordActions: "Actions",
|
|
603
|
+
flowRecordCell: "{column}, ligne {row}",
|
|
604
|
+
flowRecordRemove: "Supprimer la ligne {row}",
|
|
605
|
+
flowRecordAdd: "Ajouter une ligne",
|
|
606
|
+
flowRecordsEmpty: "Aucune ligne pour l’instant.",
|
|
607
|
+
flowRecordProblem: "Ligne {row} : {message}",
|
|
608
|
+
flowRecordsCount: "[one]{count} ligne[other]{count} lignes",
|
|
609
|
+
flowPickMore: "et {count} de plus",
|
|
610
|
+
flowPickCount: "[one]{count} choisi[other]{count} choisis",
|
|
611
|
+
flowPickChosen: "Choisis",
|
|
612
|
+
flowPickNone: "Rien n’est encore choisi.",
|
|
613
|
+
flowChecks: "Vérifications",
|
|
614
|
+
flowCancel: "Annuler",
|
|
615
|
+
flowCheckAcknowledge: "Continuer malgré l’avertissement",
|
|
616
|
+
flowCheckRunning: "Vérification…",
|
|
617
|
+
flowCheckNotRun: "Non exécutée",
|
|
618
|
+
flowCheckStale: "Les réponses ont changé depuis la vérification",
|
|
619
|
+
flowCheckPassed: "Réussie à {time}",
|
|
620
|
+
flowCheckWarning: "Avertissement à {time}",
|
|
621
|
+
flowCheckFailed: "Échec à {time}",
|
|
622
|
+
flowCheckInvalid: "La vérification n’a pas donné de réponse exploitable.",
|
|
623
|
+
flowCheckNeeded: "Lancez « {check} » avec ces réponses.",
|
|
624
|
+
flowCheckNotPassed: "« {check} » n’a pas réussi.",
|
|
625
|
+
flowCheckConfirmWarning: "Confirmez l’avertissement de « {check} ».",
|
|
626
|
+
flowTasks: "Tâches",
|
|
627
|
+
flowTasksProgress: "{done} tâches sur {count} terminées",
|
|
628
|
+
flowTaskNeedsAction: "Action requise",
|
|
629
|
+
flowTaskBlocked: "Ne peut pas encore commencer",
|
|
630
|
+
flowTasksReview: "Vérifier et envoyer",
|
|
631
|
+
flowTasksIncomplete: "Terminez d’abord les tâches requises.",
|
|
632
|
+
flowBackToTasks: "Retour aux tâches",
|
|
633
|
+
flowSaveAndReturn: "Enregistrer et revenir",
|
|
634
|
+
flowSaveDraft: "Enregistrer le brouillon",
|
|
635
|
+
flowClose: "Fermer",
|
|
636
|
+
flowDiscardQuestion: "Abandonner vos réponses ?",
|
|
637
|
+
flowDiscard: "Abandonner",
|
|
638
|
+
flowKeepEditing: "Continuer la saisie",
|
|
639
|
+
flowDraftSaved: "Brouillon enregistré",
|
|
640
|
+
flowDraftFailed: "Le brouillon n’a pas été enregistré.",
|
|
641
|
+
flowDraftFound: "Brouillon enregistré",
|
|
642
|
+
flowDraftFrom: "Vous avez un brouillon enregistré le {time}.",
|
|
643
|
+
flowDraftStale: "Les paramètres ont changé depuis l’enregistrement de ce brouillon.",
|
|
644
|
+
flowDraftResume: "Reprendre là où vous en étiez",
|
|
645
|
+
flowDraftRestart: "Recommencer",
|
|
646
|
+
flowStartFrom: "Partir de",
|
|
647
|
+
flowPresetSave: "Enregistrer comme modèle",
|
|
648
|
+
flowPresetNone: "Valeurs par défaut",
|
|
649
|
+
flowPresetsSaved: "Modèles enregistrés",
|
|
650
|
+
flowPresetApplied: "Parti de {preset}",
|
|
651
|
+
flowPresetName: "Nom du modèle",
|
|
652
|
+
flowPresetFailed: "Le modèle n’a pas été enregistré.",
|
|
653
|
+
flowPresetSaved: "Modèle {preset} enregistré",
|
|
654
|
+
flowPresetChanges: "[one]D’après {preset}, {count} modification[other]D’après {preset}, {count} modifications",
|
|
655
|
+
flowCommandTab: "Commande",
|
|
656
|
+
flowPatchTab: "JSON patch",
|
|
657
|
+
flowCommandTitle: "Commande équivalente",
|
|
658
|
+
flowPreview: "Aperçu",
|
|
659
|
+
flowPreviewLoading: "Chargement de l’aperçu…",
|
|
660
|
+
flowPreviewFailed: "Impossible de charger l’aperçu : {message}",
|
|
661
|
+
flowPreviewNone: "Rien à prévisualiser.",
|
|
662
|
+
flowConfirmMismatch: "Saisissez exactement {text} pour continuer.",
|
|
663
|
+
flowAcknowledgeNeeded: "Confirmez ceci avant d’envoyer.",
|
|
664
|
+
flowPresetCurrent: "Paramètres actuels",
|
|
665
|
+
flowPickOneByOne: "Choisissez les enregistrements un par un ou page par page.",
|
|
591
666
|
matrixRows: "Lignes",
|
|
592
667
|
matrixColumns: "Colonnes",
|
|
593
668
|
matrixSearch: "Rechercher des lignes et des colonnes",
|
|
@@ -614,6 +689,7 @@ const labels = Object.freeze({
|
|
|
614
689
|
matrixItemTotal: "{item} : {count}",
|
|
615
690
|
matrixExpandGroup: "Développer {group}",
|
|
616
691
|
matrixCollapseGroup: "Réduire {group}",
|
|
692
|
+
matrixGroupHeadingCount: "{count}",
|
|
617
693
|
matrixGroupCount: "Éléments : {count}",
|
|
618
694
|
matrixDetails: "Détails",
|
|
619
695
|
matrixClose: "Fermer",
|
|
@@ -11,6 +11,7 @@ const labels = Object.freeze({
|
|
|
11
11
|
searchWordTooShort: "Digita una parola di almeno {min} caratteri",
|
|
12
12
|
searchFailed: "Ricerca non riuscita: {error}",
|
|
13
13
|
columns: "Colonne",
|
|
14
|
+
hiddenColumns: "[one]+{count} colonna[other]+{count} colonne",
|
|
14
15
|
gridFilters: "Filtri",
|
|
15
16
|
gridFitContent: "Adatta al contenuto",
|
|
16
17
|
gridUnpin: "Sblocca",
|
|
@@ -243,7 +244,7 @@ const labels = Object.freeze({
|
|
|
243
244
|
gridExportCancelled: "Esportazione annullata",
|
|
244
245
|
gridCancelExport: "Annulla esportazione",
|
|
245
246
|
gridPrint: "Stampa",
|
|
246
|
-
gridCloseRecord: "Chiudi
|
|
247
|
+
gridCloseRecord: "Chiudi",
|
|
247
248
|
gridContains: "contiene",
|
|
248
249
|
gridStartsWith: "inizia con",
|
|
249
250
|
gridIn: "è uno tra",
|
|
@@ -588,6 +589,80 @@ const labels = Object.freeze({
|
|
|
588
589
|
flowCopied: "Copiato",
|
|
589
590
|
flowSavedIt: "L'ho salvato",
|
|
590
591
|
flowShownOnce: "Mostrato una sola volta. Copialo ora.",
|
|
592
|
+
flowTimedOut: "L’host non ha risposto in tempo.",
|
|
593
|
+
flowNoHostHook: "Nessun host risponde a questo.",
|
|
594
|
+
flowOptionsLoading: "Caricamento delle opzioni…",
|
|
595
|
+
flowOptionsFailed: "Impossibile caricare le opzioni: {message}",
|
|
596
|
+
flowRetry: "Riprova",
|
|
597
|
+
flowRunAgain: "Esegui di nuovo",
|
|
598
|
+
flowRunCheckAgain: "Esegui di nuovo «{check}»",
|
|
599
|
+
flowFieldsLoading: "Caricamento dei campi…",
|
|
600
|
+
flowFieldsFailed: "Impossibile caricare i campi: {message}",
|
|
601
|
+
flowChangedMark: "Modificato",
|
|
602
|
+
flowRecordActions: "Azioni",
|
|
603
|
+
flowRecordCell: "{column}, riga {row}",
|
|
604
|
+
flowRecordRemove: "Rimuovi la riga {row}",
|
|
605
|
+
flowRecordAdd: "Aggiungi riga",
|
|
606
|
+
flowRecordsEmpty: "Ancora nessuna riga.",
|
|
607
|
+
flowRecordProblem: "Riga {row}: {message}",
|
|
608
|
+
flowRecordsCount: "[one]{count} riga[other]{count} righe",
|
|
609
|
+
flowPickMore: "e altri {count}",
|
|
610
|
+
flowPickCount: "[one]{count} scelto[other]{count} scelti",
|
|
611
|
+
flowPickChosen: "Scelti",
|
|
612
|
+
flowPickNone: "Ancora nulla di scelto.",
|
|
613
|
+
flowChecks: "Verifiche",
|
|
614
|
+
flowCancel: "Annulla",
|
|
615
|
+
flowCheckAcknowledge: "Continua nonostante l’avviso",
|
|
616
|
+
flowCheckRunning: "Verifica in corso…",
|
|
617
|
+
flowCheckNotRun: "Non eseguita",
|
|
618
|
+
flowCheckStale: "Le risposte sono cambiate dopo la verifica",
|
|
619
|
+
flowCheckPassed: "Superata alle {time}",
|
|
620
|
+
flowCheckWarning: "Avviso alle {time}",
|
|
621
|
+
flowCheckFailed: "Non riuscita alle {time}",
|
|
622
|
+
flowCheckInvalid: "La verifica non ha dato una risposta utilizzabile.",
|
|
623
|
+
flowCheckNeeded: "Esegui «{check}» con queste risposte.",
|
|
624
|
+
flowCheckNotPassed: "«{check}» non è stata superata.",
|
|
625
|
+
flowCheckConfirmWarning: "Conferma l’avviso di «{check}».",
|
|
626
|
+
flowTasks: "Attività",
|
|
627
|
+
flowTasksProgress: "{done} di {count} attività completate",
|
|
628
|
+
flowTaskNeedsAction: "Richiede un intervento",
|
|
629
|
+
flowTaskBlocked: "Non può ancora iniziare",
|
|
630
|
+
flowTasksReview: "Rivedi e invia",
|
|
631
|
+
flowTasksIncomplete: "Completa prima le attività obbligatorie.",
|
|
632
|
+
flowBackToTasks: "Torna alle attività",
|
|
633
|
+
flowSaveAndReturn: "Salva e torna indietro",
|
|
634
|
+
flowSaveDraft: "Salva bozza",
|
|
635
|
+
flowClose: "Chiudi",
|
|
636
|
+
flowDiscardQuestion: "Scartare le risposte?",
|
|
637
|
+
flowDiscard: "Scarta",
|
|
638
|
+
flowKeepEditing: "Continua a modificare",
|
|
639
|
+
flowDraftSaved: "Bozza salvata",
|
|
640
|
+
flowDraftFailed: "La bozza non è stata salvata.",
|
|
641
|
+
flowDraftFound: "Bozza salvata",
|
|
642
|
+
flowDraftFrom: "Hai una bozza salvata il {time}.",
|
|
643
|
+
flowDraftStale: "Le impostazioni sono cambiate dopo il salvataggio di questa bozza.",
|
|
644
|
+
flowDraftResume: "Riprendi da dove avevi lasciato",
|
|
645
|
+
flowDraftRestart: "Ricomincia",
|
|
646
|
+
flowStartFrom: "Parti da",
|
|
647
|
+
flowPresetSave: "Salva come modello",
|
|
648
|
+
flowPresetNone: "Valori predefiniti",
|
|
649
|
+
flowPresetsSaved: "Modelli salvati",
|
|
650
|
+
flowPresetApplied: "Avviato da {preset}",
|
|
651
|
+
flowPresetName: "Nome del modello",
|
|
652
|
+
flowPresetFailed: "Il modello non è stato salvato.",
|
|
653
|
+
flowPresetSaved: "Modello {preset} salvato",
|
|
654
|
+
flowPresetChanges: "[one]In base a {preset}, {count} modifica[other]In base a {preset}, {count} modifiche",
|
|
655
|
+
flowCommandTab: "Comando",
|
|
656
|
+
flowPatchTab: "JSON patch",
|
|
657
|
+
flowCommandTitle: "Comando equivalente",
|
|
658
|
+
flowPreview: "Anteprima",
|
|
659
|
+
flowPreviewLoading: "Caricamento dell’anteprima…",
|
|
660
|
+
flowPreviewFailed: "Impossibile caricare l’anteprima: {message}",
|
|
661
|
+
flowPreviewNone: "Niente da visualizzare.",
|
|
662
|
+
flowConfirmMismatch: "Digita esattamente {text} per continuare.",
|
|
663
|
+
flowAcknowledgeNeeded: "Conferma prima di inviare.",
|
|
664
|
+
flowPresetCurrent: "Impostazioni attuali",
|
|
665
|
+
flowPickOneByOne: "Scegli i record uno alla volta o una pagina alla volta.",
|
|
591
666
|
matrixRows: "Righe",
|
|
592
667
|
matrixColumns: "Colonne",
|
|
593
668
|
matrixSearch: "Cerca righe e colonne",
|
|
@@ -614,6 +689,7 @@ const labels = Object.freeze({
|
|
|
614
689
|
matrixItemTotal: "{item}: {count}",
|
|
615
690
|
matrixExpandGroup: "Espandi {group}",
|
|
616
691
|
matrixCollapseGroup: "Comprimi {group}",
|
|
692
|
+
matrixGroupHeadingCount: "{count}",
|
|
617
693
|
matrixGroupCount: "Elementi: {count}",
|
|
618
694
|
matrixDetails: "Dettagli",
|
|
619
695
|
matrixClose: "Chiudi",
|
|
@@ -11,6 +11,7 @@ const labels = Object.freeze({
|
|
|
11
11
|
searchWordTooShort: "Wpisz słowo o długości co najmniej {min} znaków",
|
|
12
12
|
searchFailed: "Nie udało się wyszukać: {error}",
|
|
13
13
|
columns: "Kolumny",
|
|
14
|
+
hiddenColumns: "[one]+{count} kolumna[few]+{count} kolumny[many]+{count} kolumn[other]+{count} kolumny",
|
|
14
15
|
gridFilters: "Filtry",
|
|
15
16
|
gridFitContent: "Dopasuj do zawartości",
|
|
16
17
|
gridUnpin: "Odepnij",
|
|
@@ -243,7 +244,7 @@ const labels = Object.freeze({
|
|
|
243
244
|
gridExportCancelled: "Eksport anulowany",
|
|
244
245
|
gridCancelExport: "Anuluj eksport",
|
|
245
246
|
gridPrint: "Drukuj",
|
|
246
|
-
gridCloseRecord: "Zamknij
|
|
247
|
+
gridCloseRecord: "Zamknij",
|
|
247
248
|
gridContains: "zawiera",
|
|
248
249
|
gridStartsWith: "zaczyna się od",
|
|
249
250
|
gridIn: "jest jedną z wartości",
|
|
@@ -588,6 +589,80 @@ const labels = Object.freeze({
|
|
|
588
589
|
flowCopied: "Skopiowano",
|
|
589
590
|
flowSavedIt: "Mam to zapisane",
|
|
590
591
|
flowShownOnce: "Widoczne tylko raz. Skopiuj teraz.",
|
|
592
|
+
flowTimedOut: "Host nie odpowiedział na czas.",
|
|
593
|
+
flowNoHostHook: "Nikt po stronie hosta tego nie obsługuje.",
|
|
594
|
+
flowOptionsLoading: "Wczytywanie opcji…",
|
|
595
|
+
flowOptionsFailed: "Nie udało się wczytać opcji: {message}",
|
|
596
|
+
flowRetry: "Spróbuj ponownie",
|
|
597
|
+
flowRunAgain: "Uruchom ponownie",
|
|
598
|
+
flowRunCheckAgain: "Uruchom ponownie „{check}”",
|
|
599
|
+
flowFieldsLoading: "Wczytywanie pól…",
|
|
600
|
+
flowFieldsFailed: "Nie udało się wczytać pól: {message}",
|
|
601
|
+
flowChangedMark: "Zmieniono",
|
|
602
|
+
flowRecordActions: "Akcje",
|
|
603
|
+
flowRecordCell: "{column}, wiersz {row}",
|
|
604
|
+
flowRecordRemove: "Usuń wiersz {row}",
|
|
605
|
+
flowRecordAdd: "Dodaj wiersz",
|
|
606
|
+
flowRecordsEmpty: "Brak wierszy.",
|
|
607
|
+
flowRecordProblem: "Wiersz {row}: {message}",
|
|
608
|
+
flowRecordsCount: "[one]{count} wiersz[few]{count} wiersze[many]{count} wierszy[other]{count} wiersza",
|
|
609
|
+
flowPickMore: "i {count} więcej",
|
|
610
|
+
flowPickCount: "[one]Wybrano {count}[few]Wybrano {count}[many]Wybrano {count}[other]Wybrano {count}",
|
|
611
|
+
flowPickChosen: "Wybrane",
|
|
612
|
+
flowPickNone: "Nic jeszcze nie wybrano.",
|
|
613
|
+
flowChecks: "Testy",
|
|
614
|
+
flowCancel: "Anuluj",
|
|
615
|
+
flowCheckAcknowledge: "Kontynuuj mimo ostrzeżenia",
|
|
616
|
+
flowCheckRunning: "Sprawdzanie…",
|
|
617
|
+
flowCheckNotRun: "Nie uruchomiono",
|
|
618
|
+
flowCheckStale: "Odpowiedzi zmieniły się od testu",
|
|
619
|
+
flowCheckPassed: "Zaliczono o {time}",
|
|
620
|
+
flowCheckWarning: "Ostrzeżenie o {time}",
|
|
621
|
+
flowCheckFailed: "Niepowodzenie o {time}",
|
|
622
|
+
flowCheckInvalid: "Test nie zwrócił użytecznej odpowiedzi.",
|
|
623
|
+
flowCheckNeeded: "Uruchom „{check}” dla tych odpowiedzi.",
|
|
624
|
+
flowCheckNotPassed: "„{check}” nie przeszedł.",
|
|
625
|
+
flowCheckConfirmWarning: "Potwierdź ostrzeżenie testu „{check}”.",
|
|
626
|
+
flowTasks: "Zadania",
|
|
627
|
+
flowTasksProgress: "Ukończono zadania: {done} z {count}",
|
|
628
|
+
flowTaskNeedsAction: "Wymaga działania",
|
|
629
|
+
flowTaskBlocked: "Nie można jeszcze rozpocząć",
|
|
630
|
+
flowTasksReview: "Przejrzyj i wyślij",
|
|
631
|
+
flowTasksIncomplete: "Najpierw ukończ wymagane zadania.",
|
|
632
|
+
flowBackToTasks: "Wróć do zadań",
|
|
633
|
+
flowSaveAndReturn: "Zapisz i wróć",
|
|
634
|
+
flowSaveDraft: "Zapisz wersję roboczą",
|
|
635
|
+
flowClose: "Zamknij",
|
|
636
|
+
flowDiscardQuestion: "Odrzucić odpowiedzi?",
|
|
637
|
+
flowDiscard: "Odrzuć",
|
|
638
|
+
flowKeepEditing: "Kontynuuj edycję",
|
|
639
|
+
flowDraftSaved: "Zapisano wersję roboczą",
|
|
640
|
+
flowDraftFailed: "Nie zapisano wersji roboczej.",
|
|
641
|
+
flowDraftFound: "Zapisana wersja robocza",
|
|
642
|
+
flowDraftFrom: "Masz wersję roboczą zapisaną {time}.",
|
|
643
|
+
flowDraftStale: "Ustawienia zmieniły się po zapisaniu tej wersji roboczej.",
|
|
644
|
+
flowDraftResume: "Wznów w miejscu przerwania",
|
|
645
|
+
flowDraftRestart: "Zacznij od nowa",
|
|
646
|
+
flowStartFrom: "Zacznij od",
|
|
647
|
+
flowPresetSave: "Zapisz jako szablon",
|
|
648
|
+
flowPresetNone: "Ustawienia domyślne",
|
|
649
|
+
flowPresetsSaved: "Zapisane szablony",
|
|
650
|
+
flowPresetApplied: "Rozpoczęto od: {preset}",
|
|
651
|
+
flowPresetName: "Nazwa szablonu",
|
|
652
|
+
flowPresetFailed: "Nie zapisano szablonu.",
|
|
653
|
+
flowPresetSaved: "Zapisano szablon {preset}",
|
|
654
|
+
flowPresetChanges: "[one]Na podstawie {preset}, {count} zmiana[few]Na podstawie {preset}, {count} zmiany[many]Na podstawie {preset}, {count} zmian[other]Na podstawie {preset}, {count} zmiany",
|
|
655
|
+
flowCommandTab: "Polecenie",
|
|
656
|
+
flowPatchTab: "JSON patch",
|
|
657
|
+
flowCommandTitle: "Równoważne polecenie",
|
|
658
|
+
flowPreview: "Podgląd",
|
|
659
|
+
flowPreviewLoading: "Wczytywanie podglądu…",
|
|
660
|
+
flowPreviewFailed: "Nie udało się wczytać podglądu: {message}",
|
|
661
|
+
flowPreviewNone: "Brak podglądu.",
|
|
662
|
+
flowConfirmMismatch: "Wpisz dokładnie {text}, aby kontynuować.",
|
|
663
|
+
flowAcknowledgeNeeded: "Potwierdź to przed wysłaniem.",
|
|
664
|
+
flowPresetCurrent: "Bieżące ustawienia",
|
|
665
|
+
flowPickOneByOne: "Wybierz rekordy pojedynczo lub stronami.",
|
|
591
666
|
matrixRows: "Wiersze",
|
|
592
667
|
matrixColumns: "Kolumny",
|
|
593
668
|
matrixSearch: "Szukaj wierszy i kolumn",
|
|
@@ -614,6 +689,7 @@ const labels = Object.freeze({
|
|
|
614
689
|
matrixItemTotal: "{item}: {count}",
|
|
615
690
|
matrixExpandGroup: "Rozwiń {group}",
|
|
616
691
|
matrixCollapseGroup: "Zwiń {group}",
|
|
692
|
+
matrixGroupHeadingCount: "{count}",
|
|
617
693
|
matrixGroupCount: "Elementy: {count}",
|
|
618
694
|
matrixDetails: "Szczegóły",
|
|
619
695
|
matrixClose: "Zamknij",
|
package/JavaScript/protocol.d.ts
CHANGED
|
@@ -195,7 +195,7 @@ export type LabelName =
|
|
|
195
195
|
| "gridExport" | "gridFilteredResults" | "gridSelectedRows" | "gridAllResults" | "gridVisibleRows" | "gridAllRows" | "gridDownloadCsv" | "gridCopy" | "gridDetails"
|
|
196
196
|
| "searchPlaceholder" | "searchResults" | "searchResultCount" | "searchResultCountOfTotal"
|
|
197
197
|
| "searchResultCountOfMany" | "searchNoResults" | "searchTooShort" | "searchWordTooShort" | "searchFailed"
|
|
198
|
-
| "columns" | "visibleColumns" | "resizeColumn" | "columnWidth" | "loading" | "loadError" | "queryFailed"
|
|
198
|
+
| "columns" | "hiddenColumns" | "visibleColumns" | "resizeColumn" | "columnWidth" | "loading" | "loadError" | "queryFailed"
|
|
199
199
|
| "showMore" | "showMoreUnknownTotal" | "pageLoaded" | "itemsLoaded" | "yes" | "no"
|
|
200
200
|
| "utcTime" | "localTime" | "mountError" | "actions" | "editValue" | "saveEdit" | "cancelEdit"
|
|
201
201
|
| "invalidEdit" | "interactionPending" | "interactionRejected" | "interactionFailed"
|
package/README.md
CHANGED
|
@@ -23,13 +23,13 @@ Turn application data into searchable trees, sortable tables and standalone HTML
|
|
|
23
23
|
- **Status matrices**: a state for each pair of two sets of entities, with totals, sorting, filtering and grouping on both axes, sticky headers and both axes windowed ([docs/matrix.md](docs/matrix.md)).
|
|
24
24
|
- **Guided flows** for setup and edit tasks: steps with typed fields, conditions as data, validation, a review page with change links, secrets that never echo, and one proposal to the host ([docs/flow.md](docs/flow.md)).
|
|
25
25
|
|
|
26
|
-

|
|
27
27
|
|
|
28
28
|
The same explorer in the dark theme, alongside its script-free output for email and print:
|
|
29
29
|
|
|
30
30
|
| Dark theme | Static outline |
|
|
31
31
|
| --- | --- |
|
|
32
|
-
|  |  |
|
|
33
33
|
|
|
34
34
|
## Features
|
|
35
35
|
|
|
@@ -136,6 +136,10 @@ inventory.SaveHtmlPage("inventory.html");
|
|
|
136
136
|
|
|
137
137
|
Open `inventory.html` to search the records, sort by name or size, and adjust the columns. Record IDs stay stable when the order changes.
|
|
138
138
|
|
|
139
|
+
Event snapshots without a key column opt in to `CanopyGridRowIdentity.Ordinal`; the typed grid assigns source positions and keeps sorting, filtering, export and drawers available. Saved selections, record deep links and keyed live updates require stable keys. Use `CanopySelectionMode.None` and leave reporting selection controls off for a read-only report with no selection consumer. See [row identity](docs/data-protocol.md#row-identity-order) and the generated `ordinal-grid.html` example.
|
|
140
|
+
|
|
141
|
+
Grid fitting reserves readable header and content minimums before preferred whitespace. Spare width restores headers first, then preferred widths, then ordinary column growth. Headers yield with a full-title tooltip only when their capped minimums cannot collectively fit; content that still needs more room scrolls horizontally. Auto height includes the actual horizontal scrollbar gutter. The [column-fitting algorithm](docs/column-fitting.md) and `report-grid-layout.html` example describe the policy.
|
|
142
|
+
|
|
139
143
|
### Render a table for email or print
|
|
140
144
|
|
|
141
145
|
```csharp
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evotecit/canopyx",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"description": "Interactive tree grids and data tables with virtual rows, search, filters and offline HTML reports.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -145,6 +145,8 @@
|
|
|
145
145
|
"CanopyX.Html/Assets/canopyx-forms.css",
|
|
146
146
|
"CanopyX.Html/Assets/canopyx-flow.js",
|
|
147
147
|
"CanopyX.Html/Assets/canopyx-flow.css",
|
|
148
|
+
"CanopyX.Html/Assets/canopyx-flow-*.js",
|
|
149
|
+
"CanopyX.Html/Assets/canopyx-flow-*.css",
|
|
148
150
|
"CanopyX.Html/Assets/canopyx-matrix.js",
|
|
149
151
|
"CanopyX.Html/Assets/canopyx-matrix.css",
|
|
150
152
|
"CanopyX.Html/Assets/canopyx-editing.js",
|