@evotecit/canopyx 0.3.7 → 0.3.9
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-changes.css +240 -0
- package/CanopyX.Html/Assets/canopyx-changes.js +224 -0
- package/CanopyX.Html/Assets/canopyx-grid-module.mjs +11 -6
- package/CanopyX.Html/Assets/canopyx-grid.css +2 -0
- package/CanopyX.Html/Assets/canopyx-grid.js +11 -6
- package/CanopyX.Html/Assets/canopyx-interactive.js +3 -3
- package/CanopyX.Html/Assets/canopyx-labels-de.js +74 -2
- package/CanopyX.Html/Assets/canopyx-labels-es.js +74 -2
- package/CanopyX.Html/Assets/canopyx-labels-fr.js +74 -2
- package/CanopyX.Html/Assets/canopyx-labels-it.js +74 -2
- package/CanopyX.Html/Assets/canopyx-labels-pl.js +74 -2
- package/CanopyX.Html/Assets/canopyx-matrix.css +16 -3
- package/CanopyX.Html/Assets/canopyx-matrix.js +21 -13
- package/CanopyX.Html/Assets/canopyx-module.mjs +3 -3
- package/CanopyX.Html/Assets/canopyx-reporting-module.mjs +11 -6
- package/CanopyX.Html/Assets/canopyx-reporting.css +2 -0
- package/CanopyX.Html/Assets/canopyx-reporting.js +11 -6
- package/CanopyX.Html/Assets/canopyx.js +3 -3
- package/JavaScript/changes.d.ts +252 -0
- package/JavaScript/grid.d.ts +9 -5
- package/JavaScript/locales/de.mjs +74 -2
- package/JavaScript/locales/es.mjs +74 -2
- package/JavaScript/locales/fr.mjs +74 -2
- package/JavaScript/locales/it.mjs +74 -2
- package/JavaScript/locales/pl.mjs +74 -2
- package/JavaScript/matrix.d.ts +2 -0
- package/README.md +3 -2
- package/package.json +5 -1
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
// Type declarations for the change views (docs/changes.md): a text diff, a change list and a propagation view.
|
|
2
|
+
|
|
3
|
+
/** A note about a change that the lines cannot show, such as changed line endings. */
|
|
4
|
+
export interface ChangeNote {
|
|
5
|
+
text: string;
|
|
6
|
+
/** A CanopyX tone or a host tone; info when left out. */
|
|
7
|
+
tone?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** A run of lines: where it starts on each side and its lines, each beginning with " " (unchanged), "-" (removed) or "+" (added). */
|
|
11
|
+
export interface DiffHunk {
|
|
12
|
+
before: number;
|
|
13
|
+
after: number;
|
|
14
|
+
lines: string[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** The properties of a diff, as a diff document carries them and as a change list item's diff. */
|
|
18
|
+
export interface DiffBody {
|
|
19
|
+
id: string;
|
|
20
|
+
label: string;
|
|
21
|
+
path?: string;
|
|
22
|
+
previousPath?: string;
|
|
23
|
+
/** Text by default; the other states have no lines and show their message. */
|
|
24
|
+
content?: "binary" | "unavailable" | "identical";
|
|
25
|
+
message?: string;
|
|
26
|
+
beforeTitle?: string;
|
|
27
|
+
afterTitle?: string;
|
|
28
|
+
/** The whole earlier text: the browser compares the texts when there are no hunks (up to 5,000 lines each) and opens folded regions. */
|
|
29
|
+
before?: string;
|
|
30
|
+
after?: string;
|
|
31
|
+
hunks?: DiffHunk[];
|
|
32
|
+
/** Unchanged lines around each change, 0 to 20; 3 by default. */
|
|
33
|
+
context?: number;
|
|
34
|
+
/** Side by side when there is room, by default. */
|
|
35
|
+
layout?: "inline" | "split";
|
|
36
|
+
notes?: ChangeNote[];
|
|
37
|
+
truncated?: boolean;
|
|
38
|
+
/** The host's copy-ready unified diff. */
|
|
39
|
+
unified?: string;
|
|
40
|
+
labels?: Record<string, string>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** The diff document: `{ protocol: "canopyx/2", type: "diff" }`. */
|
|
44
|
+
export interface DiffDocument extends DiffBody {
|
|
45
|
+
protocol: "canopyx/2";
|
|
46
|
+
type: "diff";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Options of createDiff and CanopyX.configure for a diff fragment. */
|
|
50
|
+
export interface DiffOptions {
|
|
51
|
+
view: DiffDocument;
|
|
52
|
+
labels?: Record<string, string>;
|
|
53
|
+
onReady?: (detail: { diff: string }) => void;
|
|
54
|
+
onLayout?: (detail: { diff: string; layout: "inline" | "split" }) => void;
|
|
55
|
+
onCopy?: (detail: { diff: string; copied: boolean }) => void;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** The API of a diff. A call made before the changes part is in waits for it and returns a promise instead. */
|
|
59
|
+
export interface DiffApi {
|
|
60
|
+
readonly element: HTMLElement;
|
|
61
|
+
readonly view: DiffDocument;
|
|
62
|
+
readonly ready: Promise<DiffApi>;
|
|
63
|
+
getLayout(): "inline" | "split";
|
|
64
|
+
setLayout(layout: "inline" | "split"): void;
|
|
65
|
+
/** Moves to the next or previous change; false when there is none. */
|
|
66
|
+
next(): boolean;
|
|
67
|
+
previous(): boolean;
|
|
68
|
+
/** Opens every folded region whose lines the diff has. */
|
|
69
|
+
expandAll(): void;
|
|
70
|
+
/** Copies the unified diff; resolves whether the clipboard took it. */
|
|
71
|
+
copy(): Promise<boolean>;
|
|
72
|
+
/** The hunks in effect: the document's, or those the browser compared. */
|
|
73
|
+
getHunks(): DiffHunk[];
|
|
74
|
+
update(view: DiffDocument): void;
|
|
75
|
+
destroy(): void;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** One side of a change: size in bytes, content hash and time. */
|
|
79
|
+
export interface ChangeVersion {
|
|
80
|
+
size?: number;
|
|
81
|
+
hash?: string;
|
|
82
|
+
/** ISO 8601. */
|
|
83
|
+
time?: string;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** A changed file or item. */
|
|
87
|
+
export interface ChangeItem {
|
|
88
|
+
id: string;
|
|
89
|
+
kind: "added" | "removed" | "modified" | "renamed";
|
|
90
|
+
path: string;
|
|
91
|
+
previousPath?: string;
|
|
92
|
+
kindLabel?: string;
|
|
93
|
+
secondary?: string;
|
|
94
|
+
before?: ChangeVersion;
|
|
95
|
+
after?: ChangeVersion;
|
|
96
|
+
/** Shown side by side; an added item shows only its after, a removed one only its before. `note` is quiet text under the values. */
|
|
97
|
+
facts?: { label: string; before?: string; after?: string; tone?: string; note?: string }[];
|
|
98
|
+
flags?: { id: string; label: string; reason: string; tone?: string }[];
|
|
99
|
+
/** A diff that opens in the item's details. */
|
|
100
|
+
diff?: DiffBody;
|
|
101
|
+
/** The ids of the list's actions this item offers; all of them when left out. */
|
|
102
|
+
actions?: string[];
|
|
103
|
+
/** Values that copy and link actions use by key. */
|
|
104
|
+
values?: Record<string, string>;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* An action the items (or the list's bar) offer: a host action, one that asks for a reason first, a copy action ("path",
|
|
109
|
+
* "previousPath" or a value key), a link that opens a value (#, /, ./, ../, http(s):// or mailto: addresses), or one that reveals the
|
|
110
|
+
* item's details or diff. One of copy, link, reveal and reason at most.
|
|
111
|
+
*/
|
|
112
|
+
export interface ChangeAction {
|
|
113
|
+
id: string;
|
|
114
|
+
label: string;
|
|
115
|
+
icon?: "none" | "copy" | "diff" | "check" | "open" | "download" | "compare" | "flag";
|
|
116
|
+
copy?: string;
|
|
117
|
+
link?: string;
|
|
118
|
+
reveal?: "none" | "details" | "diff";
|
|
119
|
+
reason?: boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** The change list document: `{ protocol: "canopyx/2", type: "changes" }`. */
|
|
123
|
+
export interface ChangeListDocument {
|
|
124
|
+
protocol: "canopyx/2";
|
|
125
|
+
type: "changes";
|
|
126
|
+
id: string;
|
|
127
|
+
label: string;
|
|
128
|
+
actions?: ChangeAction[];
|
|
129
|
+
/** The bar's actions: host actions, and copy and link actions on the list's values. */
|
|
130
|
+
toolbar?: ChangeAction[];
|
|
131
|
+
values?: Record<string, string>;
|
|
132
|
+
/** The files the bar offers to download: the items the filters keep. */
|
|
133
|
+
exports?: ("csv" | "json")[];
|
|
134
|
+
items: ChangeItem[];
|
|
135
|
+
groupByFolder?: boolean;
|
|
136
|
+
flaggedOnly?: boolean;
|
|
137
|
+
expandFlagged?: boolean;
|
|
138
|
+
hashLength?: number;
|
|
139
|
+
pageSize?: number;
|
|
140
|
+
timeZone?: "utc" | "local";
|
|
141
|
+
labels?: Record<string, string>;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/** The reader's filters and open items. */
|
|
145
|
+
export interface ChangeListState {
|
|
146
|
+
kinds: ChangeItem["kind"][];
|
|
147
|
+
flaggedOnly: boolean;
|
|
148
|
+
open: string[];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/** What canopyx:changeAction carries. */
|
|
152
|
+
export interface ChangeActionDetail {
|
|
153
|
+
list: string;
|
|
154
|
+
action: string;
|
|
155
|
+
/** The item, or null for an action of the list's bar. */
|
|
156
|
+
item: string | null;
|
|
157
|
+
kind: ChangeItem["kind"] | null;
|
|
158
|
+
path: string | null;
|
|
159
|
+
previousPath: string | null;
|
|
160
|
+
/** The item's values, or the list's for a bar action. */
|
|
161
|
+
values: Record<string, string>;
|
|
162
|
+
/** For a copy action, whether the clipboard took the value; null otherwise. */
|
|
163
|
+
copied: boolean | null;
|
|
164
|
+
/** The reason the reader gave, for an action that asks for one. */
|
|
165
|
+
reason?: string;
|
|
166
|
+
/** The address a link action opened. */
|
|
167
|
+
href?: string;
|
|
168
|
+
/** What a reveal action opened. */
|
|
169
|
+
reveal?: "details" | "diff";
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/** What canopyx:changeExport carries. */
|
|
173
|
+
export interface ChangeExportDetail {
|
|
174
|
+
list: string;
|
|
175
|
+
format: "csv" | "json";
|
|
176
|
+
count: number;
|
|
177
|
+
/** Whether the browser was given the file. */
|
|
178
|
+
saved: boolean;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** Options of createChangeList and CanopyX.configure for a change list fragment. */
|
|
182
|
+
export interface ChangeListOptions {
|
|
183
|
+
view: ChangeListDocument;
|
|
184
|
+
labels?: Record<string, string>;
|
|
185
|
+
state?: Partial<ChangeListState>;
|
|
186
|
+
onReady?: (detail: { list: string }) => void;
|
|
187
|
+
/** Receives every action; for a host action, having it claims the action (as cancelling canopyx:changeAction does). */
|
|
188
|
+
onAction?: (detail: ChangeActionDetail, event: CustomEvent<ChangeActionDetail>) => void;
|
|
189
|
+
onExport?: (detail: ChangeExportDetail) => void;
|
|
190
|
+
onToggle?: (detail: { list: string; item: string; open: boolean }) => void;
|
|
191
|
+
onStateChange?: (state: ChangeListState) => void;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/** The API of a change list. */
|
|
195
|
+
export interface ChangeListApi {
|
|
196
|
+
readonly element: HTMLElement;
|
|
197
|
+
readonly view: ChangeListDocument;
|
|
198
|
+
readonly ready: Promise<ChangeListApi>;
|
|
199
|
+
getState(): Readonly<ChangeListState>;
|
|
200
|
+
setState(state: Partial<ChangeListState>): void;
|
|
201
|
+
/** Opens, closes or switches an item's details; false for an unknown item. */
|
|
202
|
+
toggle(id: string, open?: boolean): boolean;
|
|
203
|
+
focusItem(id: string): boolean;
|
|
204
|
+
update(view: ChangeListDocument): void;
|
|
205
|
+
destroy(): void;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/** Where a change stands at a replica. */
|
|
209
|
+
export type PropagationState = "converged" | "propagating" | "fault" | "unknown";
|
|
210
|
+
|
|
211
|
+
/** The propagation document: `{ protocol: "canopyx/2", type: "propagation" }`. */
|
|
212
|
+
export interface PropagationDocument {
|
|
213
|
+
protocol: "canopyx/2";
|
|
214
|
+
type: "propagation";
|
|
215
|
+
id: string;
|
|
216
|
+
label: string;
|
|
217
|
+
/** ISO 8601: when the change happened; the delays count from it. */
|
|
218
|
+
start?: string;
|
|
219
|
+
/** ISO 8601: when the evidence is from. */
|
|
220
|
+
asOf?: string;
|
|
221
|
+
state?: PropagationState;
|
|
222
|
+
summary?: string;
|
|
223
|
+
title?: string;
|
|
224
|
+
/** How a group heading counts its replicas, with {count} and optional plural forms. */
|
|
225
|
+
groupCount?: string;
|
|
226
|
+
witnesses: { id: string; label: string; secondary?: string; state: PropagationState; firstSeen?: string; lastSeen?: string; note?: string; source?: boolean; group?: string }[];
|
|
227
|
+
timeZone?: "utc" | "local";
|
|
228
|
+
labels?: Record<string, string>;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/** Options of createPropagation and CanopyX.configure for a propagation fragment. */
|
|
232
|
+
export interface PropagationOptions {
|
|
233
|
+
view: PropagationDocument;
|
|
234
|
+
labels?: Record<string, string>;
|
|
235
|
+
onReady?: (detail: { propagation: string }) => void;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/** The API of a propagation view. */
|
|
239
|
+
export interface PropagationApi {
|
|
240
|
+
readonly element: HTMLElement;
|
|
241
|
+
readonly view: PropagationDocument;
|
|
242
|
+
readonly ready: Promise<PropagationApi>;
|
|
243
|
+
update(view: PropagationDocument): void;
|
|
244
|
+
destroy(): void;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/** Creates a text diff in a host element (docs/changes.md). Ships with the grid and reporting entry points. */
|
|
248
|
+
export declare function createDiff(host: HTMLElement, options: DiffOptions): DiffApi;
|
|
249
|
+
/** Creates a change list in a host element (docs/changes.md). Ships with the grid and reporting entry points. */
|
|
250
|
+
export declare function createChangeList(host: HTMLElement, options: ChangeListOptions): ChangeListApi;
|
|
251
|
+
/** Creates a propagation view in a host element (docs/changes.md). Ships with the grid and reporting entry points. */
|
|
252
|
+
export declare function createPropagation(host: HTMLElement, options: PropagationOptions): PropagationApi;
|
package/JavaScript/grid.d.ts
CHANGED
|
@@ -939,14 +939,15 @@ export function createDataGrid<Row extends GridRow = GridRow>(host: HTMLElement,
|
|
|
939
939
|
export function createDataGrid<Row extends GridRow = GridRow>(host: HTMLElement, options: CursorGridOptions<GridNamedRow<Row>>): DataGrid<GridCursorQuery, Row>;
|
|
940
940
|
/** A calendar from a list of events, with no grid schema to write: a preset (basic by default) and options over it (calendar.d.ts). */
|
|
941
941
|
export function createCalendar(host: HTMLElement, options?: CalendarOptions): DataGrid<GridQuery, GridRow>;
|
|
942
|
-
/** Registers options before a tree, flat-grid, flow or
|
|
943
|
-
export function configure(viewId: string, options: HostOptions | GridHostOptions | GridHostOptions<GridCursorQuery> | Partial<Omit<FlowOptions, "flow">> | Partial<Omit<MatrixOptions, "view">>
|
|
942
|
+
/** Registers options before a tree, flat-grid, flow, matrix or change view fragment mounts. */
|
|
943
|
+
export function configure(viewId: string, options: HostOptions | GridHostOptions | GridHostOptions<GridCursorQuery> | Partial<Omit<FlowOptions, "flow">> | Partial<Omit<MatrixOptions, "view">>
|
|
944
|
+
| Partial<Omit<DiffOptions, "view">> | Partial<Omit<ChangeListOptions, "view">> | Partial<Omit<PropagationOptions, "view">>): () => void;
|
|
944
945
|
/**
|
|
945
|
-
* Mounts tree, flat-grid, flow and
|
|
946
|
+
* Mounts tree, flat-grid, flow, matrix and change view fragments below root, or root itself when it is a fragment. Fragments marked
|
|
946
947
|
* `data-cx-mount="visible"` below root wait until they come near the viewport; passing such a fragment as root mounts it at once.
|
|
947
948
|
* Narrow a controller before using view-specific methods.
|
|
948
949
|
*/
|
|
949
|
-
export function mount(root?: ParentNode): Array<TreeGrid | DataGrid<AcceptedGridQuery> | FlowApi | MatrixApi>;
|
|
950
|
+
export function mount(root?: ParentNode): Array<TreeGrid | DataGrid<AcceptedGridQuery> | FlowApi | MatrixApi | DiffApi | ChangeListApi | PropagationApi>;
|
|
950
951
|
|
|
951
952
|
import type { createFlow, FlowApi, FlowOptions } from "./flow.js";
|
|
952
953
|
export { createFlow } from "./flow.js";
|
|
@@ -954,5 +955,8 @@ export type { FlowDocument, FlowField, FlowStep, FlowSection, FlowOption, FlowCo
|
|
|
954
955
|
import type { createMatrix, MatrixOptions, MatrixApi } from "./matrix.js";
|
|
955
956
|
export { createMatrix } from "./matrix.js";
|
|
956
957
|
export type { MatrixDocument, MatrixAxis, MatrixItem, MatrixAttribute, MatrixState, MatrixSort, MatrixNote, MatrixQueryState, MatrixStateInput, MatrixCellDetail, MatrixOptions, MatrixApi } from "./matrix.js";
|
|
957
|
-
|
|
958
|
+
import type { createDiff, createChangeList, createPropagation, DiffOptions, DiffApi, ChangeListOptions, ChangeListApi, PropagationOptions, PropagationApi } from "./changes.js";
|
|
959
|
+
export { createDiff, createChangeList, createPropagation } from "./changes.js";
|
|
960
|
+
export type { ChangeNote, DiffHunk, DiffBody, DiffDocument, DiffOptions, DiffApi, ChangeVersion, ChangeItem, ChangeAction, ChangeListDocument, ChangeListState, ChangeActionDetail, ChangeExportDetail, ChangeListOptions, ChangeListApi, PropagationState, PropagationDocument, PropagationOptions, PropagationApi } from "./changes.js";
|
|
961
|
+
declare const gridRuntime: Omit<typeof CanopyX, "configure" | "mount"> & { createDataGrid: typeof createDataGrid; createCalendar: typeof createCalendar; createFlow: typeof createFlow; createMatrix: typeof createMatrix; createDiff: typeof createDiff; createChangeList: typeof createChangeList; createPropagation: typeof createPropagation; enhance: typeof enhance; grid: typeof grid; configure: typeof configure; mount: typeof mount };
|
|
958
962
|
export default gridRuntime;
|
|
@@ -689,14 +689,86 @@ const labels = Object.freeze({
|
|
|
689
689
|
matrixItemTotal: "{item}: {count}",
|
|
690
690
|
matrixExpandGroup: "{group} aufklappen",
|
|
691
691
|
matrixCollapseGroup: "{group} zuklappen",
|
|
692
|
-
|
|
693
|
-
|
|
692
|
+
matrixGroupCount: "{count}",
|
|
693
|
+
matrixCellCount: "Zellen: {count}",
|
|
694
694
|
matrixDetails: "Details",
|
|
695
695
|
matrixClose: "Schließen",
|
|
696
696
|
matrixValue: "Wert",
|
|
697
697
|
matrixState: "Zustand",
|
|
698
698
|
matrixAllClear: "Nichts erfordert Aufmerksamkeit",
|
|
699
699
|
matrixShowMore: "Mehr anzeigen",
|
|
700
|
+
changeInline: "Inline",
|
|
701
|
+
changeSplit: "Nebeneinander",
|
|
702
|
+
changeLayout: "Ansicht",
|
|
703
|
+
changeCopyDiff: "Diff kopieren",
|
|
704
|
+
changeCopied: "Kopiert",
|
|
705
|
+
changeCopyFailed: "Kopieren nicht möglich",
|
|
706
|
+
changeNext: "Nächste Änderung",
|
|
707
|
+
changePrevious: "Vorherige Änderung",
|
|
708
|
+
changePosition: "Änderung {index} von {count}",
|
|
709
|
+
changeShowLines: "[one]{count} weitere Zeile anzeigen[other]{count} weitere Zeilen anzeigen",
|
|
710
|
+
changeHiddenLines: "[one]{count} unveränderte Zeile nicht enthalten[other]{count} unveränderte Zeilen nicht enthalten",
|
|
711
|
+
changeLineCounts: "Hinzugefügte Zeilen: {added}, entfernte: {removed}",
|
|
712
|
+
changeLineAdded: "Hinzugefügte Zeile {line}",
|
|
713
|
+
changeLineRemoved: "Entfernte Zeile {line}",
|
|
714
|
+
changeLineContext: "Zeile {line}",
|
|
715
|
+
changeBefore: "Vorher",
|
|
716
|
+
changeAfter: "Nachher",
|
|
717
|
+
changeBinary: "Binärdatei: nach Größe und Hash verglichen, nicht zeilenweise.",
|
|
718
|
+
changeUnavailable: "Der Inhalt dieser Datei ist nicht verfügbar.",
|
|
719
|
+
changeIdentical: "Der Text hat sich nicht geändert.",
|
|
720
|
+
changeTruncated: "Einige Änderungen fehlen: Der Vergleich war zu groß.",
|
|
721
|
+
changeTooLarge: "Diese Texte sind zu lang, um sie hier zu vergleichen.",
|
|
722
|
+
changeDiffOf: "Änderungen in {name}",
|
|
723
|
+
changeAdded: "Hinzugefügt",
|
|
724
|
+
changeRemoved: "Entfernt",
|
|
725
|
+
changeModified: "Geändert",
|
|
726
|
+
changeRenamed: "Umbenannt",
|
|
727
|
+
changeFlaggedOnly: "Nur markierte",
|
|
728
|
+
changeFlaggedCount: "{count} markiert",
|
|
729
|
+
changeNoItems: "Keine Änderungen anzuzeigen.",
|
|
730
|
+
changeSize: "Größe",
|
|
731
|
+
changeHash: "Hash",
|
|
732
|
+
changeTime: "Zeit",
|
|
733
|
+
changeCopyHash: "Vollständigen Hash kopieren",
|
|
734
|
+
changeDetails: "Details zu {name}",
|
|
735
|
+
changeFileCount: "[one]{count} Datei[other]{count} Dateien",
|
|
736
|
+
changeFrom: "von {path}",
|
|
737
|
+
changeShowMore: "Mehr anzeigen",
|
|
738
|
+
changeFlags: "Markierungen",
|
|
739
|
+
changeFacts: "Details",
|
|
740
|
+
changeRoot: "Oberste Ebene",
|
|
741
|
+
changeShown: "{shown} von {total} angezeigt",
|
|
742
|
+
changeFilter: "Änderungen anzeigen",
|
|
743
|
+
changeActions: "Aktionen für {name}",
|
|
744
|
+
changeConverged: "Konvergiert",
|
|
745
|
+
changePropagating: "Wird repliziert",
|
|
746
|
+
changeFault: "Fehler",
|
|
747
|
+
changeUnknown: "Unbekannt",
|
|
748
|
+
changeReplica: "Replikat",
|
|
749
|
+
changeState: "Zustand",
|
|
750
|
+
changeFirstSeen: "Zuerst gesehen",
|
|
751
|
+
changeLastSeen: "Zuletzt gesehen",
|
|
752
|
+
changeTimeline: "Verzögerung",
|
|
753
|
+
changeNotSeen: "Noch nicht gesehen",
|
|
754
|
+
changeDelay: "+{duration}",
|
|
755
|
+
changeSource: "Quelle",
|
|
756
|
+
changeProgress: "{converged} von {total} haben die Änderung",
|
|
757
|
+
changeSeconds: "{count} s",
|
|
758
|
+
changeMinutes: "{count} Min.",
|
|
759
|
+
changeHours: "{count} Std.",
|
|
760
|
+
changeDays: "{count} T.",
|
|
761
|
+
changeUtcTime: "{time} UTC",
|
|
762
|
+
changeExportCsv: "CSV exportieren",
|
|
763
|
+
changeExportJson: "JSON exportieren",
|
|
764
|
+
changeReason: "Grund",
|
|
765
|
+
changeReasonHint: "{action}: Begründen Sie die Aktion. Der Grund wird mit ihr gespeichert.",
|
|
766
|
+
changeReasonRequired: "Geben Sie zuerst einen Grund ein.",
|
|
767
|
+
changeCancel: "Abbrechen",
|
|
768
|
+
changeUnclaimed: "Diese Seite kann „{action}“ nicht selbst ausführen. Kopieren Sie die Anfrage, um sie weiterzugeben.",
|
|
769
|
+
changeCopyRequest: "Anfrage kopieren",
|
|
770
|
+
changeFiltered: "Gefiltert: {filters}",
|
|
771
|
+
changePrintLimit: "{count} weitere Zeilen werden nicht gedruckt.",
|
|
700
772
|
});
|
|
701
773
|
const staticLabels = Object.freeze({
|
|
702
774
|
overflowNote: "{shown} Zeilen angezeigt. Gesamtzahl: {total}.",
|
|
@@ -689,14 +689,86 @@ const labels = Object.freeze({
|
|
|
689
689
|
matrixItemTotal: "{item}: {count}",
|
|
690
690
|
matrixExpandGroup: "Expandir {group}",
|
|
691
691
|
matrixCollapseGroup: "Contraer {group}",
|
|
692
|
-
|
|
693
|
-
|
|
692
|
+
matrixGroupCount: "{count}",
|
|
693
|
+
matrixCellCount: "Celdas: {count}",
|
|
694
694
|
matrixDetails: "Detalles",
|
|
695
695
|
matrixClose: "Cerrar",
|
|
696
696
|
matrixValue: "Valor",
|
|
697
697
|
matrixState: "Estado",
|
|
698
698
|
matrixAllClear: "Nada requiere atención",
|
|
699
699
|
matrixShowMore: "Mostrar más",
|
|
700
|
+
changeInline: "En línea",
|
|
701
|
+
changeSplit: "En paralelo",
|
|
702
|
+
changeLayout: "Diseño",
|
|
703
|
+
changeCopyDiff: "Copiar diff",
|
|
704
|
+
changeCopied: "Copiado",
|
|
705
|
+
changeCopyFailed: "No se pudo copiar",
|
|
706
|
+
changeNext: "Siguiente cambio",
|
|
707
|
+
changePrevious: "Cambio anterior",
|
|
708
|
+
changePosition: "Cambio {index} de {count}",
|
|
709
|
+
changeShowLines: "[one]Mostrar {count} línea más[other]Mostrar {count} líneas más",
|
|
710
|
+
changeHiddenLines: "[one]{count} línea sin cambios no incluida[other]{count} líneas sin cambios no incluidas",
|
|
711
|
+
changeLineCounts: "Líneas añadidas: {added}, eliminadas: {removed}",
|
|
712
|
+
changeLineAdded: "Línea añadida {line}",
|
|
713
|
+
changeLineRemoved: "Línea eliminada {line}",
|
|
714
|
+
changeLineContext: "Línea {line}",
|
|
715
|
+
changeBefore: "Antes",
|
|
716
|
+
changeAfter: "Después",
|
|
717
|
+
changeBinary: "Archivo binario: se compara por tamaño y hash, no por líneas.",
|
|
718
|
+
changeUnavailable: "El contenido de este archivo no está disponible.",
|
|
719
|
+
changeIdentical: "El texto no cambió.",
|
|
720
|
+
changeTruncated: "Algunos cambios no se muestran: la comparación era demasiado grande.",
|
|
721
|
+
changeTooLarge: "Estos textos son demasiado largos para compararlos aquí.",
|
|
722
|
+
changeDiffOf: "Cambios en {name}",
|
|
723
|
+
changeAdded: "Añadido",
|
|
724
|
+
changeRemoved: "Eliminado",
|
|
725
|
+
changeModified: "Modificado",
|
|
726
|
+
changeRenamed: "Renombrado",
|
|
727
|
+
changeFlaggedOnly: "Solo marcados",
|
|
728
|
+
changeFlaggedCount: "{count} marcados",
|
|
729
|
+
changeNoItems: "No hay cambios que mostrar.",
|
|
730
|
+
changeSize: "Tamaño",
|
|
731
|
+
changeHash: "Hash",
|
|
732
|
+
changeTime: "Hora",
|
|
733
|
+
changeCopyHash: "Copiar el hash completo",
|
|
734
|
+
changeDetails: "Detalles de {name}",
|
|
735
|
+
changeFileCount: "[one]{count} archivo[other]{count} archivos",
|
|
736
|
+
changeFrom: "desde {path}",
|
|
737
|
+
changeShowMore: "Mostrar más",
|
|
738
|
+
changeFlags: "Marcas",
|
|
739
|
+
changeFacts: "Detalles",
|
|
740
|
+
changeRoot: "Nivel superior",
|
|
741
|
+
changeShown: "{shown} de {total} mostrados",
|
|
742
|
+
changeFilter: "Mostrar cambios",
|
|
743
|
+
changeActions: "Acciones para {name}",
|
|
744
|
+
changeConverged: "Convergido",
|
|
745
|
+
changePropagating: "Propagándose",
|
|
746
|
+
changeFault: "Fallo",
|
|
747
|
+
changeUnknown: "Desconocido",
|
|
748
|
+
changeReplica: "Réplica",
|
|
749
|
+
changeState: "Estado",
|
|
750
|
+
changeFirstSeen: "Visto por primera vez",
|
|
751
|
+
changeLastSeen: "Visto por última vez",
|
|
752
|
+
changeTimeline: "Retraso",
|
|
753
|
+
changeNotSeen: "Aún no visto",
|
|
754
|
+
changeDelay: "+{duration}",
|
|
755
|
+
changeSource: "Origen",
|
|
756
|
+
changeProgress: "{converged} de {total} tienen el cambio",
|
|
757
|
+
changeSeconds: "{count} s",
|
|
758
|
+
changeMinutes: "{count} min",
|
|
759
|
+
changeHours: "{count} h",
|
|
760
|
+
changeDays: "{count} d",
|
|
761
|
+
changeUtcTime: "{time} UTC",
|
|
762
|
+
changeExportCsv: "Exportar CSV",
|
|
763
|
+
changeExportJson: "Exportar JSON",
|
|
764
|
+
changeReason: "Motivo",
|
|
765
|
+
changeReasonHint: "{action}: indique el motivo. El motivo se guarda con la acción.",
|
|
766
|
+
changeReasonRequired: "Indique primero un motivo.",
|
|
767
|
+
changeCancel: "Cancelar",
|
|
768
|
+
changeUnclaimed: "Esta página no puede realizar «{action}» por sí misma. Copie la solicitud para transmitirla.",
|
|
769
|
+
changeCopyRequest: "Copiar solicitud",
|
|
770
|
+
changeFiltered: "Filtrado: {filters}",
|
|
771
|
+
changePrintLimit: "{count} líneas más no se imprimen.",
|
|
700
772
|
});
|
|
701
773
|
const staticLabels = Object.freeze({
|
|
702
774
|
overflowNote: "Filas mostradas: {shown}. Total: {total}.",
|
|
@@ -689,14 +689,86 @@ const labels = Object.freeze({
|
|
|
689
689
|
matrixItemTotal: "{item} : {count}",
|
|
690
690
|
matrixExpandGroup: "Développer {group}",
|
|
691
691
|
matrixCollapseGroup: "Réduire {group}",
|
|
692
|
-
|
|
693
|
-
|
|
692
|
+
matrixGroupCount: "{count}",
|
|
693
|
+
matrixCellCount: "Cellules : {count}",
|
|
694
694
|
matrixDetails: "Détails",
|
|
695
695
|
matrixClose: "Fermer",
|
|
696
696
|
matrixValue: "Valeur",
|
|
697
697
|
matrixState: "État",
|
|
698
698
|
matrixAllClear: "Rien à examiner",
|
|
699
699
|
matrixShowMore: "Afficher plus",
|
|
700
|
+
changeInline: "En ligne",
|
|
701
|
+
changeSplit: "Côte à côte",
|
|
702
|
+
changeLayout: "Disposition",
|
|
703
|
+
changeCopyDiff: "Copier le diff",
|
|
704
|
+
changeCopied: "Copié",
|
|
705
|
+
changeCopyFailed: "Copie impossible",
|
|
706
|
+
changeNext: "Modification suivante",
|
|
707
|
+
changePrevious: "Modification précédente",
|
|
708
|
+
changePosition: "Modification {index} sur {count}",
|
|
709
|
+
changeShowLines: "[one]Afficher {count} ligne de plus[other]Afficher {count} lignes de plus",
|
|
710
|
+
changeHiddenLines: "[one]{count} ligne inchangée non incluse[other]{count} lignes inchangées non incluses",
|
|
711
|
+
changeLineCounts: "Lignes ajoutées : {added}, supprimées : {removed}",
|
|
712
|
+
changeLineAdded: "Ligne ajoutée {line}",
|
|
713
|
+
changeLineRemoved: "Ligne supprimée {line}",
|
|
714
|
+
changeLineContext: "Ligne {line}",
|
|
715
|
+
changeBefore: "Avant",
|
|
716
|
+
changeAfter: "Après",
|
|
717
|
+
changeBinary: "Fichier binaire : comparé par taille et empreinte, pas par lignes.",
|
|
718
|
+
changeUnavailable: "Le contenu de ce fichier n'est pas disponible.",
|
|
719
|
+
changeIdentical: "Le texte n'a pas changé.",
|
|
720
|
+
changeTruncated: "Certaines modifications ne sont pas affichées : la comparaison était trop grande.",
|
|
721
|
+
changeTooLarge: "Ces textes sont trop longs pour être comparés ici.",
|
|
722
|
+
changeDiffOf: "Modifications dans {name}",
|
|
723
|
+
changeAdded: "Ajouté",
|
|
724
|
+
changeRemoved: "Supprimé",
|
|
725
|
+
changeModified: "Modifié",
|
|
726
|
+
changeRenamed: "Renommé",
|
|
727
|
+
changeFlaggedOnly: "Signalés uniquement",
|
|
728
|
+
changeFlaggedCount: "Signalés : {count}",
|
|
729
|
+
changeNoItems: "Aucune modification à afficher.",
|
|
730
|
+
changeSize: "Taille",
|
|
731
|
+
changeHash: "Empreinte",
|
|
732
|
+
changeTime: "Heure",
|
|
733
|
+
changeCopyHash: "Copier l'empreinte complète",
|
|
734
|
+
changeDetails: "Détails de {name}",
|
|
735
|
+
changeFileCount: "[one]{count} fichier[other]{count} fichiers",
|
|
736
|
+
changeFrom: "depuis {path}",
|
|
737
|
+
changeShowMore: "Afficher plus",
|
|
738
|
+
changeFlags: "Signalements",
|
|
739
|
+
changeFacts: "Détails",
|
|
740
|
+
changeRoot: "Niveau supérieur",
|
|
741
|
+
changeShown: "{shown} sur {total} affichés",
|
|
742
|
+
changeFilter: "Afficher les modifications",
|
|
743
|
+
changeActions: "Actions pour {name}",
|
|
744
|
+
changeConverged: "Convergé",
|
|
745
|
+
changePropagating: "En propagation",
|
|
746
|
+
changeFault: "Défaut",
|
|
747
|
+
changeUnknown: "Inconnu",
|
|
748
|
+
changeReplica: "Réplica",
|
|
749
|
+
changeState: "État",
|
|
750
|
+
changeFirstSeen: "Vu pour la première fois",
|
|
751
|
+
changeLastSeen: "Vu pour la dernière fois",
|
|
752
|
+
changeTimeline: "Délai",
|
|
753
|
+
changeNotSeen: "Pas encore vu",
|
|
754
|
+
changeDelay: "+{duration}",
|
|
755
|
+
changeSource: "Source",
|
|
756
|
+
changeProgress: "{converged} sur {total} ont la modification",
|
|
757
|
+
changeSeconds: "{count} s",
|
|
758
|
+
changeMinutes: "{count} min",
|
|
759
|
+
changeHours: "{count} h",
|
|
760
|
+
changeDays: "{count} j",
|
|
761
|
+
changeUtcTime: "{time} UTC",
|
|
762
|
+
changeExportCsv: "Exporter en CSV",
|
|
763
|
+
changeExportJson: "Exporter en JSON",
|
|
764
|
+
changeReason: "Motif",
|
|
765
|
+
changeReasonHint: "{action} : indiquez le motif. Le motif est conservé avec l'action.",
|
|
766
|
+
changeReasonRequired: "Indiquez d'abord un motif.",
|
|
767
|
+
changeCancel: "Annuler",
|
|
768
|
+
changeUnclaimed: "Cette page ne peut pas exécuter « {action} » elle-même. Copiez la demande pour la transmettre.",
|
|
769
|
+
changeCopyRequest: "Copier la demande",
|
|
770
|
+
changeFiltered: "Filtré : {filters}",
|
|
771
|
+
changePrintLimit: "{count} lignes de plus ne sont pas imprimées.",
|
|
700
772
|
});
|
|
701
773
|
const staticLabels = Object.freeze({
|
|
702
774
|
overflowNote: "{shown} lignes affichées sur {total}.",
|
|
@@ -689,14 +689,86 @@ const labels = Object.freeze({
|
|
|
689
689
|
matrixItemTotal: "{item}: {count}",
|
|
690
690
|
matrixExpandGroup: "Espandi {group}",
|
|
691
691
|
matrixCollapseGroup: "Comprimi {group}",
|
|
692
|
-
|
|
693
|
-
|
|
692
|
+
matrixGroupCount: "{count}",
|
|
693
|
+
matrixCellCount: "Celle: {count}",
|
|
694
694
|
matrixDetails: "Dettagli",
|
|
695
695
|
matrixClose: "Chiudi",
|
|
696
696
|
matrixValue: "Valore",
|
|
697
697
|
matrixState: "Stato",
|
|
698
698
|
matrixAllClear: "Niente richiede attenzione",
|
|
699
699
|
matrixShowMore: "Mostra altro",
|
|
700
|
+
changeInline: "In linea",
|
|
701
|
+
changeSplit: "Affiancato",
|
|
702
|
+
changeLayout: "Layout",
|
|
703
|
+
changeCopyDiff: "Copia diff",
|
|
704
|
+
changeCopied: "Copiato",
|
|
705
|
+
changeCopyFailed: "Impossibile copiare",
|
|
706
|
+
changeNext: "Modifica successiva",
|
|
707
|
+
changePrevious: "Modifica precedente",
|
|
708
|
+
changePosition: "Modifica {index} di {count}",
|
|
709
|
+
changeShowLines: "[one]Mostra {count} altra riga[other]Mostra altre {count} righe",
|
|
710
|
+
changeHiddenLines: "[one]{count} riga invariata non inclusa[other]{count} righe invariate non incluse",
|
|
711
|
+
changeLineCounts: "Righe aggiunte: {added}, rimosse: {removed}",
|
|
712
|
+
changeLineAdded: "Riga aggiunta {line}",
|
|
713
|
+
changeLineRemoved: "Riga rimossa {line}",
|
|
714
|
+
changeLineContext: "Riga {line}",
|
|
715
|
+
changeBefore: "Prima",
|
|
716
|
+
changeAfter: "Dopo",
|
|
717
|
+
changeBinary: "File binario: confrontato per dimensione e hash, non per righe.",
|
|
718
|
+
changeUnavailable: "Il contenuto di questo file non è disponibile.",
|
|
719
|
+
changeIdentical: "Il testo non è cambiato.",
|
|
720
|
+
changeTruncated: "Alcune modifiche non sono mostrate: il confronto era troppo grande.",
|
|
721
|
+
changeTooLarge: "Questi testi sono troppo lunghi per essere confrontati qui.",
|
|
722
|
+
changeDiffOf: "Modifiche in {name}",
|
|
723
|
+
changeAdded: "Aggiunto",
|
|
724
|
+
changeRemoved: "Rimosso",
|
|
725
|
+
changeModified: "Modificato",
|
|
726
|
+
changeRenamed: "Rinominato",
|
|
727
|
+
changeFlaggedOnly: "Solo segnalati",
|
|
728
|
+
changeFlaggedCount: "{count} segnalati",
|
|
729
|
+
changeNoItems: "Nessuna modifica da mostrare.",
|
|
730
|
+
changeSize: "Dimensione",
|
|
731
|
+
changeHash: "Hash",
|
|
732
|
+
changeTime: "Ora",
|
|
733
|
+
changeCopyHash: "Copia l'hash completo",
|
|
734
|
+
changeDetails: "Dettagli di {name}",
|
|
735
|
+
changeFileCount: "[one]{count} file[other]{count} file",
|
|
736
|
+
changeFrom: "da {path}",
|
|
737
|
+
changeShowMore: "Mostra altro",
|
|
738
|
+
changeFlags: "Segnalazioni",
|
|
739
|
+
changeFacts: "Dettagli",
|
|
740
|
+
changeRoot: "Livello principale",
|
|
741
|
+
changeShown: "{shown} di {total} mostrati",
|
|
742
|
+
changeFilter: "Mostra modifiche",
|
|
743
|
+
changeActions: "Azioni per {name}",
|
|
744
|
+
changeConverged: "Convergente",
|
|
745
|
+
changePropagating: "In propagazione",
|
|
746
|
+
changeFault: "Errore",
|
|
747
|
+
changeUnknown: "Sconosciuto",
|
|
748
|
+
changeReplica: "Replica",
|
|
749
|
+
changeState: "Stato",
|
|
750
|
+
changeFirstSeen: "Visto per la prima volta",
|
|
751
|
+
changeLastSeen: "Visto per l'ultima volta",
|
|
752
|
+
changeTimeline: "Ritardo",
|
|
753
|
+
changeNotSeen: "Non ancora visto",
|
|
754
|
+
changeDelay: "+{duration}",
|
|
755
|
+
changeSource: "Origine",
|
|
756
|
+
changeProgress: "{converged} su {total} hanno la modifica",
|
|
757
|
+
changeSeconds: "{count} s",
|
|
758
|
+
changeMinutes: "{count} min",
|
|
759
|
+
changeHours: "{count} h",
|
|
760
|
+
changeDays: "{count} g",
|
|
761
|
+
changeUtcTime: "{time} UTC",
|
|
762
|
+
changeExportCsv: "Esporta CSV",
|
|
763
|
+
changeExportJson: "Esporta JSON",
|
|
764
|
+
changeReason: "Motivo",
|
|
765
|
+
changeReasonHint: "{action}: indica il motivo. Il motivo viene conservato con l'azione.",
|
|
766
|
+
changeReasonRequired: "Indica prima un motivo.",
|
|
767
|
+
changeCancel: "Annulla",
|
|
768
|
+
changeUnclaimed: "Questa pagina non può eseguire «{action}» da sola. Copia la richiesta per inoltrarla.",
|
|
769
|
+
changeCopyRequest: "Copia richiesta",
|
|
770
|
+
changeFiltered: "Filtrato: {filters}",
|
|
771
|
+
changePrintLimit: "Altre {count} righe non vengono stampate.",
|
|
700
772
|
});
|
|
701
773
|
const staticLabels = Object.freeze({
|
|
702
774
|
overflowNote: "Righe mostrate: {shown} su {total}.",
|