@chelone/core 0.7.0 → 0.9.0
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/dist/auth/auth-options.d.ts +2 -0
- package/dist/auth/auth-options.js +3 -1
- package/dist/block-editor/block-document.d.ts +4 -0
- package/dist/block-editor/block-document.js +5 -1
- package/dist/command-menu/recents.d.ts +4 -0
- package/dist/command-menu/recents.js +5 -1
- package/dist/controller/calendar-dates.d.ts +12 -0
- package/dist/controller/calendar-dates.js +13 -1
- package/dist/controller/in-place-editor.d.ts +9 -8
- package/dist/controller/in-place-editor.js +3 -2
- package/dist/controller/inspector.d.ts +6 -0
- package/dist/controller/inspector.js +7 -1
- package/dist/controller/job-monitor.d.ts +8 -1
- package/dist/controller/job-monitor.js +11 -2
- package/dist/controller/kanban-board.d.ts +3 -2
- package/dist/controller/kanban-board.js +3 -1
- package/dist/controller/list-controller.d.ts +3 -0
- package/dist/controller/list-controller.js +5 -2
- package/dist/controller/pivot-grid.d.ts +4 -4
- package/dist/controller/prev-next.js +2 -2
- package/dist/controller/record-diff.d.ts +2 -2
- package/dist/controller/record-timeline.d.ts +5 -5
- package/dist/controller/reference-many-controller.d.ts +2 -0
- package/dist/controller/reference-many-controller.js +4 -3
- package/dist/csv/export.d.ts +2 -2
- package/dist/csv/import-controller.d.ts +4 -0
- package/dist/csv/import-controller.js +5 -1
- package/dist/data/fake-provider.js +7 -1
- package/dist/data/with-lifecycle-callbacks.d.ts +2 -2
- package/dist/form/choices-controller.d.ts +19 -0
- package/dist/form/choices-controller.js +18 -5
- package/dist/form/input-binding.js +3 -1
- package/dist/form/input-values.d.ts +10 -0
- package/dist/form/input-values.js +30 -1
- package/dist/form/json-text.d.ts +11 -0
- package/dist/form/json-text.js +12 -1
- package/dist/geo/coordinates.d.ts +10 -0
- package/dist/geo/coordinates.js +14 -1
- package/dist/geo/index.d.ts +2 -2
- package/dist/geo/map-style.d.ts +12 -0
- package/dist/geo/map-style.js +13 -1
- package/dist/guards.d.ts +7 -0
- package/dist/guards.js +16 -1
- package/dist/i18n/english-messages.d.ts +172 -0
- package/dist/i18n/english-messages.js +173 -1
- package/dist/i18n/missing-keys.d.ts +4 -0
- package/dist/i18n/missing-keys.js +5 -1
- package/dist/index.d.ts +22 -21
- package/dist/index.js +21 -20
- package/dist/onboarding-tour/placement.d.ts +2 -0
- package/dist/onboarding-tour/placement.js +3 -1
- package/dist/resource/describe-resource.js +26 -11
- package/dist/resource/source-path.d.ts +7 -1
- package/dist/rich-text/rich-text-extras.d.ts +2 -0
- package/dist/rich-text/rich-text-extras.js +4 -2
- package/dist/router/location.d.ts +2 -0
- package/dist/router/location.js +3 -1
- package/dist/ui-defaults.d.ts +15 -0
- package/dist/ui-defaults.js +17 -0
- package/package.json +1 -1
|
@@ -107,6 +107,16 @@ export declare function toFileSelection(value: FormValue): FileSelection;
|
|
|
107
107
|
export declare function toFileEntries(value: FormValue): FileEntry[];
|
|
108
108
|
/** A stable list key for a file entry: the dropped file's name, else the stored `src` or URL, else its place. */
|
|
109
109
|
export declare function fileEntryKey(entry: FileEntry, index: number): string | number;
|
|
110
|
+
/**
|
|
111
|
+
* What an image preview shows of a file entry: its URL and a title, or `null`
|
|
112
|
+
* when it has no URL or one that is not safe to load. A raster data URL is safe,
|
|
113
|
+
* since data providers store uploads that way. A stored URL string is titled by
|
|
114
|
+
* its file name, and a data URL string has none.
|
|
115
|
+
*/
|
|
116
|
+
export declare function fileEntryImage(entry: FileEntry | undefined): {
|
|
117
|
+
src: string;
|
|
118
|
+
title?: string;
|
|
119
|
+
} | null;
|
|
110
120
|
/** The object URL a file entry's preview holds, to revoke when it goes. */
|
|
111
121
|
export declare function fileEntryPreview(entry: FileEntry): string | undefined;
|
|
112
122
|
/** A currency input's value: the amount, `null` when cleared (minor-vs-major units stay with the input). */
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
import { isSafeImageSrc } from "../rich-text/rich-text.js";
|
|
1
2
|
// src/form/input-values.ts
|
|
2
3
|
/**
|
|
4
|
+
* The value each input family edits, and one guard per family that reads it out
|
|
5
|
+
* of form state.
|
|
6
|
+
*
|
|
7
|
+
* The guards are total — every family has a value for every input, so an input
|
|
8
|
+
* never has to cast its own value. They convert, not validate: a value the
|
|
9
|
+
* family cannot hold lands on that family's empty value.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
3
12
|
* The value a choice list stores for one choice: its `id` when it has one (ra's
|
|
4
13
|
* `choices` carry `{id, name}` pairs), the choice itself otherwise.
|
|
5
14
|
*/
|
|
@@ -119,6 +128,26 @@ function fileEntryKey(entry, index) {
|
|
|
119
128
|
if (isFile(entry)) return index;
|
|
120
129
|
return entry.src ?? index;
|
|
121
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* What an image preview shows of a file entry: its URL and a title, or `null`
|
|
133
|
+
* when it has no URL or one that is not safe to load. A raster data URL is safe,
|
|
134
|
+
* since data providers store uploads that way. A stored URL string is titled by
|
|
135
|
+
* its file name, and a data URL string has none.
|
|
136
|
+
*/
|
|
137
|
+
function fileEntryImage(entry) {
|
|
138
|
+
if (entry === void 0 || isFile(entry)) return null;
|
|
139
|
+
const src = typeof entry === "string" ? entry : entry.src;
|
|
140
|
+
if (!src || !isSafeImageSrc(src, { allowDataImages: true })) return null;
|
|
141
|
+
if (typeof entry !== "string") return {
|
|
142
|
+
src,
|
|
143
|
+
title: entry.title
|
|
144
|
+
};
|
|
145
|
+
if (src.startsWith("data:")) return { src };
|
|
146
|
+
return {
|
|
147
|
+
src,
|
|
148
|
+
title: entry.split("/").pop()
|
|
149
|
+
};
|
|
150
|
+
}
|
|
122
151
|
/** The object URL a file entry's preview holds, to revoke when it goes. */
|
|
123
152
|
function fileEntryPreview(entry) {
|
|
124
153
|
if (typeof entry === "string") return void 0;
|
|
@@ -174,4 +203,4 @@ function toWebhookValue(value) {
|
|
|
174
203
|
...lastDelivery === void 0 ? {} : { lastDelivery }
|
|
175
204
|
};
|
|
176
205
|
}
|
|
177
|
-
export { choiceIdOf, fileEntryKey, fileEntryPreview, isTransformedFile, resolveChoiceValue, toBooleanValue, toChoiceValue, toChoiceValues, toCurrencyComposite, toCurrencyValue, toDateInputValue, toFileEntries, toFileInputValue, toFileSelection, toNullableBooleanValue, toNumberValue, toTextList, toTextValue, toWebhookValue };
|
|
206
|
+
export { choiceIdOf, fileEntryImage, fileEntryKey, fileEntryPreview, isTransformedFile, resolveChoiceValue, toBooleanValue, toChoiceValue, toChoiceValues, toCurrencyComposite, toCurrencyValue, toDateInputValue, toFileEntries, toFileInputValue, toFileSelection, toNullableBooleanValue, toNumberValue, toTextList, toTextValue, toWebhookValue };
|
package/dist/form/json-text.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/** Monaco's `MarkerSeverity.Error`. */
|
|
2
|
+
export declare const ERROR_SEVERITY = 8;
|
|
3
|
+
/**
|
|
4
|
+
* How long after the last edit `settled` waits for Monaco's markers. Monaco
|
|
5
|
+
* posts them about 500 ms after an edit.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MARKERS_SETTLE_MS = 750;
|
|
8
|
+
export declare const MONACO_DIAGNOSTICS_DELAY_MS = 500;
|
|
9
|
+
export declare const MONACO_MIN_HEIGHT = 120;
|
|
10
|
+
/** Every model path the Monaco add-on creates starts with this. */
|
|
11
|
+
export declare const MODEL_PREFIX = "inmemory://monaco-json-input/";
|
|
1
12
|
export type JsonShape = "string" | "object";
|
|
2
13
|
export declare function detectJsonShape(value: unknown): JsonShape | null;
|
|
3
14
|
export declare function toJsonText(value: unknown, shape: JsonShape, indent?: number): string;
|
package/dist/form/json-text.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
// src/form/json-text.ts
|
|
2
|
+
/** Monaco's `MarkerSeverity.Error`. */
|
|
3
|
+
var ERROR_SEVERITY = 8;
|
|
4
|
+
/**
|
|
5
|
+
* How long after the last edit `settled` waits for Monaco's markers. Monaco
|
|
6
|
+
* posts them about 500 ms after an edit.
|
|
7
|
+
*/
|
|
8
|
+
var MARKERS_SETTLE_MS = 750;
|
|
9
|
+
var MONACO_DIAGNOSTICS_DELAY_MS = 500;
|
|
10
|
+
var MONACO_MIN_HEIGHT = 120;
|
|
11
|
+
/** Every model path the Monaco add-on creates starts with this. */
|
|
12
|
+
var MODEL_PREFIX = "inmemory://monaco-json-input/";
|
|
2
13
|
function detectJsonShape(value) {
|
|
3
14
|
if (value === void 0) return null;
|
|
4
15
|
return typeof value === "string" ? "string" : "object";
|
|
@@ -58,4 +69,4 @@ function parseOrKeep(text) {
|
|
|
58
69
|
};
|
|
59
70
|
}
|
|
60
71
|
}
|
|
61
|
-
export { detectJsonShape, formatJsonValue, fromJsonText, toJsonText };
|
|
72
|
+
export { ERROR_SEVERITY, MARKERS_SETTLE_MS, MODEL_PREFIX, MONACO_DIAGNOSTICS_DELAY_MS, MONACO_MIN_HEIGHT, detectJsonShape, formatJsonValue, fromJsonText, toJsonText };
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import type { ValidationMessage, Validator } from "../form/validators.js";
|
|
2
|
+
/** How far north or south a latitude goes. */
|
|
3
|
+
export declare const LATITUDE_LIMIT = 90;
|
|
4
|
+
/** How far east or west a longitude goes. */
|
|
5
|
+
export declare const LONGITUDE_LIMIT = 180;
|
|
6
|
+
/**
|
|
7
|
+
* A longitude from a repeated copy of the world, back into -180..180. MapLibre
|
|
8
|
+
* tiles the world side by side, so a click east of the last copy reports a
|
|
9
|
+
* longitude past 180, by any number of turns.
|
|
10
|
+
*/
|
|
11
|
+
export declare function wrapLongitude(longitude: number): number;
|
|
2
12
|
/** A finite number from a number or a numeric string, else `null`. `0` is valid. */
|
|
3
13
|
export declare function toCoordinate(value: unknown): number | null;
|
|
4
14
|
/** Errors outside -90..90 (or on a non-number). Skips empty values. */
|
package/dist/geo/coordinates.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { isEmpty } from "../form/validators.js";
|
|
2
2
|
// src/geo/coordinates.ts
|
|
3
3
|
var NUMERIC = /^[+-]?(\d+\.?\d*|\.\d+)(e[+-]?\d+)?$/i;
|
|
4
|
+
/** How far north or south a latitude goes. */
|
|
5
|
+
var LATITUDE_LIMIT = 90;
|
|
6
|
+
/** How far east or west a longitude goes. */
|
|
7
|
+
var LONGITUDE_LIMIT = 180;
|
|
8
|
+
/**
|
|
9
|
+
* A longitude from a repeated copy of the world, back into -180..180. MapLibre
|
|
10
|
+
* tiles the world side by side, so a click east of the last copy reports a
|
|
11
|
+
* longitude past 180, by any number of turns.
|
|
12
|
+
*/
|
|
13
|
+
function wrapLongitude(longitude) {
|
|
14
|
+
if (Math.abs(longitude) <= 180) return longitude;
|
|
15
|
+
return ((longitude + 180) % 360 + 360) % 360 - 180;
|
|
16
|
+
}
|
|
4
17
|
/** A finite number from a number or a numeric string, else `null`. `0` is valid. */
|
|
5
18
|
function toCoordinate(value) {
|
|
6
19
|
if (typeof value === "number") return Number.isFinite(value) ? value : null;
|
|
@@ -37,4 +50,4 @@ function latitude(message = "chelone.validation.latitude") {
|
|
|
37
50
|
function longitude(message = "chelone.validation.longitude") {
|
|
38
51
|
return rangeValidator(-180, 180, message);
|
|
39
52
|
}
|
|
40
|
-
export { latitude, longitude, toCoordinate };
|
|
53
|
+
export { LATITUDE_LIMIT, LONGITUDE_LIMIT, latitude, longitude, toCoordinate, wrapLongitude };
|
package/dist/geo/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { aspectLockedBBox, bboxToPolygon, polygonToBBox } from "./bbox.js";
|
|
|
2
2
|
export type { LngLatBox } from "./bounds.js";
|
|
3
3
|
export { geoBounds, isLngLatBox } from "./bounds.js";
|
|
4
4
|
export { countVertices, maxVertices, minAreaM2, minVertices, noSelfIntersection, } from "./constraints.js";
|
|
5
|
-
export { latitude, longitude, toCoordinate } from "./coordinates.js";
|
|
5
|
+
export { LATITUDE_LIMIT, LONGITUDE_LIMIT, latitude, longitude, toCoordinate, wrapLongitude, } from "./coordinates.js";
|
|
6
6
|
export type { EditorFeature, EditorSnapshotFeature, EditorStyles, } from "./editor.js";
|
|
7
7
|
export { editorStyles, fromEditorFeatures, toEditorFeatures } from "./editor.js";
|
|
8
8
|
export type { GeocodeQuery, GeocodeQueryOptions, GeocodeRequestOptions, GeocodeResult, GeocodeSearchOptions, GeocodingProvider, ReverseGeocodeQueryOptions, } from "./geocoding.js";
|
|
@@ -13,7 +13,7 @@ export { areaInTypeOf, geoAreaM2, hasSelfIntersection, } from "./geometry-math.j
|
|
|
13
13
|
export type { CircleLayerSpec, FillLayerSpec, LineLayerSpec, ShapeLayerSpec, ShapeStyle, } from "./map-layers.js";
|
|
14
14
|
export { asFeatureCollection, DEFAULT_SHAPE_STYLE, shapeLayerSpecs, } from "./map-layers.js";
|
|
15
15
|
export type { MapStyleInput, MapStyleSpec, RasterTileStyleOptions, } from "./map-style.js";
|
|
16
|
-
export { expandTileUrl, latLngToLngLat, lngLatToLatLng, rasterTileStyle, } from "./map-style.js";
|
|
16
|
+
export { DEFAULT_FIT_PADDING, DEFAULT_MAP_HEIGHT, DEFAULT_MAP_ZOOM, DEFAULT_MAX_FIT_ZOOM, DEFAULT_PIN_COLOR, expandTileUrl, latLngToLngLat, lngLatToLatLng, PIN_NS, rasterTileStyle, } from "./map-style.js";
|
|
17
17
|
export { mapMessages } from "./messages.js";
|
|
18
18
|
export type { NominatimProviderOptions } from "./nominatim.js";
|
|
19
19
|
export { createNominatimProvider } from "./nominatim.js";
|
package/dist/geo/map-style.d.ts
CHANGED
|
@@ -26,6 +26,18 @@ export interface RasterTileStyleOptions {
|
|
|
26
26
|
/** MapLibre has no `{s}` support, so a template with one becomes three URLs. */
|
|
27
27
|
export declare function expandTileUrl(url: string): string[];
|
|
28
28
|
export declare function rasterTileStyle({ tileUrl, attribution, maxZoom, }: RasterTileStyleOptions): MapStyleSpec;
|
|
29
|
+
/** The zoom a map view builds when the app passes none. */
|
|
30
|
+
export declare const DEFAULT_MAP_ZOOM = 13;
|
|
31
|
+
/** The height in pixels a map view builds when the app passes none. */
|
|
32
|
+
export declare const DEFAULT_MAP_HEIGHT = 300;
|
|
33
|
+
/** The pixels a bounds fit keeps free around the box when the app passes none. */
|
|
34
|
+
export declare const DEFAULT_FIT_PADDING = 20;
|
|
35
|
+
/** The highest zoom a bounds fit may reach when the app passes none. */
|
|
36
|
+
export declare const DEFAULT_MAX_FIT_ZOOM = 18;
|
|
37
|
+
/** The pin fill a map marker uses when the app passes no color. */
|
|
38
|
+
export declare const DEFAULT_PIN_COLOR = "#dc2626";
|
|
39
|
+
/** The SVG namespace, for building a pin element without a map library. */
|
|
40
|
+
export declare const PIN_NS = "http://www.w3.org/2000/svg";
|
|
29
41
|
/** `[lat, lng]` (what components take) to MapLibre's `[lng, lat]`. */
|
|
30
42
|
export declare function latLngToLngLat(latLng: readonly [lat: number, lng: number]): [lng: number, lat: number];
|
|
31
43
|
/** MapLibre's `[lng, lat]` to `[lat, lng]`. */
|
package/dist/geo/map-style.js
CHANGED
|
@@ -27,6 +27,18 @@ function rasterTileStyle({ tileUrl, attribution, maxZoom = 19 }) {
|
|
|
27
27
|
}]
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
+
/** The zoom a map view builds when the app passes none. */
|
|
31
|
+
var DEFAULT_MAP_ZOOM = 13;
|
|
32
|
+
/** The height in pixels a map view builds when the app passes none. */
|
|
33
|
+
var DEFAULT_MAP_HEIGHT = 300;
|
|
34
|
+
/** The pixels a bounds fit keeps free around the box when the app passes none. */
|
|
35
|
+
var DEFAULT_FIT_PADDING = 20;
|
|
36
|
+
/** The highest zoom a bounds fit may reach when the app passes none. */
|
|
37
|
+
var DEFAULT_MAX_FIT_ZOOM = 18;
|
|
38
|
+
/** The pin fill a map marker uses when the app passes no color. */
|
|
39
|
+
var DEFAULT_PIN_COLOR = "#dc2626";
|
|
40
|
+
/** The SVG namespace, for building a pin element without a map library. */
|
|
41
|
+
var PIN_NS = "http://www.w3.org/2000/svg";
|
|
30
42
|
/** `[lat, lng]` (what components take) to MapLibre's `[lng, lat]`. */
|
|
31
43
|
function latLngToLngLat(latLng) {
|
|
32
44
|
return [latLng[1], latLng[0]];
|
|
@@ -35,4 +47,4 @@ function latLngToLngLat(latLng) {
|
|
|
35
47
|
function lngLatToLatLng(lngLat) {
|
|
36
48
|
return [lngLat[1], lngLat[0]];
|
|
37
49
|
}
|
|
38
|
-
export { expandTileUrl, latLngToLngLat, lngLatToLatLng, rasterTileStyle };
|
|
50
|
+
export { DEFAULT_FIT_PADDING, DEFAULT_MAP_HEIGHT, DEFAULT_MAP_ZOOM, DEFAULT_MAX_FIT_ZOOM, DEFAULT_PIN_COLOR, PIN_NS, expandTileUrl, latLngToLngLat, lngLatToLatLng, rasterTileStyle };
|
package/dist/guards.d.ts
CHANGED
|
@@ -35,3 +35,10 @@ export declare function isThenable(value: unknown): value is PromiseLike<unknown
|
|
|
35
35
|
* so is a value that contains itself.
|
|
36
36
|
*/
|
|
37
37
|
export declare function isJsonObject(value: unknown): value is JsonObject;
|
|
38
|
+
/**
|
|
39
|
+
* Could `new Headers(value)` take it? A `Headers`, a list of `[name, value]`
|
|
40
|
+
* pairs, or a record whose every value is a string. A pair list holding a
|
|
41
|
+
* non-string, and a record holding a number or a null, are refused: `Headers`
|
|
42
|
+
* would read them as names and values it was never given.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isHeadersInit(value: unknown): value is HeadersInit;
|
package/dist/guards.js
CHANGED
|
@@ -36,6 +36,21 @@ function isJsonObject(value) {
|
|
|
36
36
|
return isPlainObject(value) && isJsonValue(value, /* @__PURE__ */ new WeakSet());
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
+
* Could `new Headers(value)` take it? A `Headers`, a list of `[name, value]`
|
|
40
|
+
* pairs, or a record whose every value is a string. A pair list holding a
|
|
41
|
+
* non-string, and a record holding a number or a null, are refused: `Headers`
|
|
42
|
+
* would read them as names and values it was never given.
|
|
43
|
+
*/
|
|
44
|
+
function isHeadersInit(value) {
|
|
45
|
+
if (value instanceof Headers) return true;
|
|
46
|
+
if (Array.isArray(value)) return value.every(isHeaderPair);
|
|
47
|
+
return isPlainObject(value) && Object.values(value).every((entry) => typeof entry === "string");
|
|
48
|
+
}
|
|
49
|
+
/** One `[name, value]` header pair. A longer or shorter array is not one. */
|
|
50
|
+
function isHeaderPair(value) {
|
|
51
|
+
return Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && typeof value[1] === "string";
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
39
54
|
* The deep half of `isJsonObject`. `path` holds the containers `value` sits
|
|
40
55
|
* inside, so a value that contains itself is refused instead of walked
|
|
41
56
|
* forever; a shared sub-object, which no container holds twice on one path,
|
|
@@ -59,4 +74,4 @@ function isJsonValue(value, path) {
|
|
|
59
74
|
path.delete(value);
|
|
60
75
|
return held;
|
|
61
76
|
}
|
|
62
|
-
export { hasProperty, isJsonObject, isPlainObject, isRecord, isThenable };
|
|
77
|
+
export { hasProperty, isHeadersInit, isJsonObject, isPlainObject, isRecord, isThenable };
|
|
@@ -181,6 +181,178 @@ export declare const englishMessages: {
|
|
|
181
181
|
readonly "ra.saved_queries.new_label": "Save current query";
|
|
182
182
|
readonly "ra.saved_queries.query_name": "Query name";
|
|
183
183
|
readonly "ra.saved_queries.remove_label_with_name": "Remove saved query \"{name}\"";
|
|
184
|
+
readonly "chelone.assistant.close": "Close";
|
|
185
|
+
readonly "chelone.assistant.confirm": "Run {name}?";
|
|
186
|
+
readonly "chelone.assistant.error": "Something went wrong.";
|
|
187
|
+
readonly "chelone.assistant.placeholder": "Ask…";
|
|
188
|
+
readonly "chelone.assistant.retry": "Retry";
|
|
189
|
+
readonly "chelone.assistant.send": "Send";
|
|
190
|
+
readonly "chelone.assistant.stop": "Stop";
|
|
191
|
+
readonly "chelone.assistant.thinking": "Thinking…";
|
|
192
|
+
readonly "chelone.assistant.trigger": "Ask";
|
|
193
|
+
readonly "chelone.assistant.welcome": "Hi! Ask me anything.";
|
|
194
|
+
readonly "chelone.approval.already_approved": "You already approved";
|
|
195
|
+
readonly "chelone.approval.approve": "Approve";
|
|
196
|
+
readonly "chelone.approval.complete": "Fully approved ({count} of {required})";
|
|
197
|
+
readonly "chelone.approval.count": "{count} of {required}";
|
|
198
|
+
readonly "chelone.approval.fully_approved": "Fully approved ({count} of {required})";
|
|
199
|
+
readonly "chelone.approval.reject": "Reject";
|
|
200
|
+
readonly "chelone.approval_queue.confirm_reject": "Confirm reject";
|
|
201
|
+
readonly "chelone.approval_queue.empty": "No items waiting for approval";
|
|
202
|
+
readonly "chelone.approval_queue.reason": "Reason";
|
|
203
|
+
readonly "chelone.approval_queue.rejected": "Rejected";
|
|
204
|
+
readonly "chelone.block_editor.add_block": "Add block";
|
|
205
|
+
readonly "chelone.block_editor.chart.aggregate": "Aggregate";
|
|
206
|
+
readonly "chelone.block_editor.chart.avg": "Average";
|
|
207
|
+
readonly "chelone.block_editor.chart.bar": "Bar";
|
|
208
|
+
readonly "chelone.block_editor.chart.category": "Category field";
|
|
209
|
+
readonly "chelone.block_editor.chart.count": "Count";
|
|
210
|
+
readonly "chelone.block_editor.chart.description": "Aggregate a resource into a chart";
|
|
211
|
+
readonly "chelone.block_editor.chart.label": "Chart";
|
|
212
|
+
readonly "chelone.block_editor.chart.line": "Line";
|
|
213
|
+
readonly "chelone.block_editor.chart.pie": "Pie";
|
|
214
|
+
readonly "chelone.block_editor.chart.sum": "Sum";
|
|
215
|
+
readonly "chelone.block_editor.chart.type": "Chart type";
|
|
216
|
+
readonly "chelone.block_editor.chart.value": "Value field";
|
|
217
|
+
readonly "chelone.block_editor.data.choose_resource": "Choose a resource";
|
|
218
|
+
readonly "chelone.block_editor.data.fields": "Fields";
|
|
219
|
+
readonly "chelone.block_editor.data.fields_hint": "title, status";
|
|
220
|
+
readonly "chelone.block_editor.data.resource": "Resource";
|
|
221
|
+
readonly "chelone.block_editor.drag": "Drag to move";
|
|
222
|
+
readonly "chelone.block_editor.embed.empty": "Add a YouTube or Vimeo link";
|
|
223
|
+
readonly "chelone.block_editor.embed.title": "Embedded video";
|
|
224
|
+
readonly "chelone.block_editor.image.alt": "Alt text";
|
|
225
|
+
readonly "chelone.block_editor.image.empty": "Add an image";
|
|
226
|
+
readonly "chelone.block_editor.image.too_large": "Choose an image file up to 5 MB";
|
|
227
|
+
readonly "chelone.block_editor.image.upload": "Upload image";
|
|
228
|
+
readonly "chelone.block_editor.image.url": "Image URL";
|
|
229
|
+
readonly "chelone.block_editor.image.width": "Width (%)";
|
|
230
|
+
readonly "chelone.block_editor.no_blocks": "No blocks found";
|
|
231
|
+
readonly "chelone.block_editor.placeholder": "Type / for blocks";
|
|
232
|
+
readonly "chelone.block_editor.recordList.description": "Embed a live list from a resource";
|
|
233
|
+
readonly "chelone.block_editor.recordList.label": "Record list";
|
|
234
|
+
readonly "chelone.block_editor.recordList.no_records": "No records";
|
|
235
|
+
readonly "chelone.block_editor.recordList.per_page": "Rows";
|
|
236
|
+
readonly "chelone.block_editor.referenceRecord.card": "Card";
|
|
237
|
+
readonly "chelone.block_editor.referenceRecord.description": "Embed a live record";
|
|
238
|
+
readonly "chelone.block_editor.referenceRecord.id": "Record id";
|
|
239
|
+
readonly "chelone.block_editor.referenceRecord.inline": "Inline";
|
|
240
|
+
readonly "chelone.block_editor.referenceRecord.label": "Reference record";
|
|
241
|
+
readonly "chelone.block_editor.referenceRecord.layout": "Layout";
|
|
242
|
+
readonly "chelone.block_editor.search": "Search blocks";
|
|
243
|
+
readonly "chelone.block_editor.toolbar.configure": "Configure";
|
|
244
|
+
readonly "chelone.block_editor.toolbar.delete": "Delete";
|
|
245
|
+
readonly "chelone.block_editor.toolbar.duplicate": "Duplicate";
|
|
246
|
+
readonly "chelone.block_editor.toolbar.label": "Block actions";
|
|
247
|
+
readonly "chelone.block_editor.toolbar.move_down": "Move down";
|
|
248
|
+
readonly "chelone.block_editor.toolbar.move_up": "Move up";
|
|
249
|
+
readonly "chelone.block_editor.unknown": "Unknown block: {type}. It is kept on save.";
|
|
250
|
+
readonly "chelone.chart.empty": "No data";
|
|
251
|
+
readonly "chelone.command_menu.account": "Account";
|
|
252
|
+
readonly "chelone.command_menu.action.logout": "Log out";
|
|
253
|
+
readonly "chelone.command_menu.action.refresh": "Refresh data";
|
|
254
|
+
readonly "chelone.command_menu.action.theme_dark": "Switch to dark theme";
|
|
255
|
+
readonly "chelone.command_menu.action.theme_light": "Switch to light theme";
|
|
256
|
+
readonly "chelone.command_menu.action.theme_system": "Use system theme";
|
|
257
|
+
readonly "chelone.command_menu.actions": "Actions";
|
|
258
|
+
readonly "chelone.command_menu.close": "Close";
|
|
259
|
+
readonly "chelone.command_menu.description": "Jump to a page or record, or run an action.";
|
|
260
|
+
readonly "chelone.command_menu.empty": "No results found.";
|
|
261
|
+
readonly "chelone.command_menu.footer.close": "Close";
|
|
262
|
+
readonly "chelone.command_menu.footer.navigate": "Navigate";
|
|
263
|
+
readonly "chelone.command_menu.footer.select": "Select";
|
|
264
|
+
readonly "chelone.command_menu.navigate": "Navigate";
|
|
265
|
+
readonly "chelone.command_menu.placeholder": "Search or run a command...";
|
|
266
|
+
readonly "chelone.command_menu.recent": "Recent";
|
|
267
|
+
readonly "chelone.command_menu.refresh": "Refresh";
|
|
268
|
+
readonly "chelone.command_menu.resources": "Resources";
|
|
269
|
+
readonly "chelone.command_menu.select": "Select";
|
|
270
|
+
readonly "chelone.command_menu.theme": "Theme";
|
|
271
|
+
readonly "chelone.command_menu.title": "Command menu";
|
|
272
|
+
readonly "chelone.comments.anonymous": "anonymous";
|
|
273
|
+
readonly "chelone.comments.empty": "No comments yet. Be the first.";
|
|
274
|
+
readonly "chelone.comments.load_failed": "Could not load the comments";
|
|
275
|
+
readonly "chelone.comments.mark_resolved": "Mark resolved";
|
|
276
|
+
readonly "chelone.comments.placeholder": "Write a comment…";
|
|
277
|
+
readonly "chelone.comments.post": "Post";
|
|
278
|
+
readonly "chelone.comments.resolved": "Resolved {time}";
|
|
279
|
+
readonly "chelone.comments.showing": "Showing the first {shown} of {total} comments";
|
|
280
|
+
readonly "chelone.comments.showing_first": "Showing the first {shown} of {total} comments";
|
|
281
|
+
readonly "chelone.devtools.clear": "Clear";
|
|
282
|
+
readonly "chelone.devtools.details": "Details";
|
|
283
|
+
readonly "chelone.devtools.empty": "No calls yet";
|
|
284
|
+
readonly "chelone.devtools.hide": "Hide";
|
|
285
|
+
readonly "chelone.devtools.params": "Params";
|
|
286
|
+
readonly "chelone.devtools.result": "Result";
|
|
287
|
+
readonly "chelone.devtools.show": "Show";
|
|
288
|
+
readonly "chelone.devtools.title": "Data provider";
|
|
289
|
+
readonly "chelone.diff_viewer.after": "After";
|
|
290
|
+
readonly "chelone.diff_viewer.before": "Before";
|
|
291
|
+
readonly "chelone.diff_viewer.empty": "(empty)";
|
|
292
|
+
readonly "chelone.diff_viewer.field": "Field";
|
|
293
|
+
readonly "chelone.guesser.no_schema.message": "Register a Zod schema for {resource} with defineResources so this page can be generated.";
|
|
294
|
+
readonly "chelone.guesser.no_schema.title": "No schema registered";
|
|
295
|
+
readonly "chelone.i18n_key_editor.copied": "Copied";
|
|
296
|
+
readonly "chelone.i18n_key_editor.copy_failed": "Could not copy the translations";
|
|
297
|
+
readonly "chelone.i18n_key_editor.empty": "No missing keys yet";
|
|
298
|
+
readonly "chelone.i18n_key_editor.export": "Export";
|
|
299
|
+
readonly "chelone.i18n_key_editor.hide": "Hide";
|
|
300
|
+
readonly "chelone.i18n_key_editor.show": "Show";
|
|
301
|
+
readonly "chelone.i18n_key_editor.title": "Missing keys ({count})";
|
|
302
|
+
readonly "chelone.inspector.configure_mode": "Configure mode";
|
|
303
|
+
readonly "chelone.inspector.customize": "Customize";
|
|
304
|
+
readonly "chelone.inspector.drag_field": "Drag to reorder";
|
|
305
|
+
readonly "chelone.inspector.empty": "Pick an outlined element to configure it";
|
|
306
|
+
readonly "chelone.inspector.inputs_title": "Form";
|
|
307
|
+
readonly "chelone.inspector.title": "Inspector";
|
|
308
|
+
readonly "chelone.job_monitor.attempts": "Attempts: {attempts}";
|
|
309
|
+
readonly "chelone.job_monitor.empty": "No {status} jobs";
|
|
310
|
+
readonly "chelone.job_monitor.hide_payload": "Hide payload";
|
|
311
|
+
readonly "chelone.job_monitor.no_type": "(no type)";
|
|
312
|
+
readonly "chelone.job_monitor.retry": "Retry";
|
|
313
|
+
readonly "chelone.job_monitor.show_payload": "Show payload";
|
|
314
|
+
readonly "chelone.job_monitor.title": "Jobs";
|
|
315
|
+
readonly "chelone.kanban_board.empty": "No items";
|
|
316
|
+
readonly "chelone.kanban_board.move": "Move {title}";
|
|
317
|
+
readonly "chelone.lock.locked_by": "Locked by {identity}";
|
|
318
|
+
readonly "chelone.navigation.load_more": "Load more";
|
|
319
|
+
readonly "chelone.navigation.no_more_rows": "No more rows";
|
|
320
|
+
readonly "chelone.onboarding_tour.back": "Back";
|
|
321
|
+
readonly "chelone.onboarding_tour.finish": "Finish";
|
|
322
|
+
readonly "chelone.onboarding_tour.next": "Next";
|
|
323
|
+
readonly "chelone.onboarding_tour.skip": "Skip";
|
|
324
|
+
readonly "chelone.permission_matrix.all": "All";
|
|
325
|
+
readonly "chelone.permission_matrix.cell": "{role} {action} {resource}";
|
|
326
|
+
readonly "chelone.permission_matrix.inherited": "Granted by a wildcard";
|
|
327
|
+
readonly "chelone.permission_matrix.no_roles": "No roles defined";
|
|
328
|
+
readonly "chelone.permission_matrix.resource": "Resource";
|
|
329
|
+
readonly "chelone.pivot_grid.no_value": "(none)";
|
|
330
|
+
readonly "chelone.pivot_grid.total": "Total";
|
|
331
|
+
readonly "chelone.record_timeline.empty": "No activity yet";
|
|
332
|
+
readonly "chelone.rich_text.block_type": "Block type";
|
|
333
|
+
readonly "chelone.rich_text.color": "Text color";
|
|
334
|
+
readonly "chelone.rich_text.image": "Image";
|
|
335
|
+
readonly "chelone.rich_text.image.close": "Close";
|
|
336
|
+
readonly "chelone.rich_text.image.error": "The image could not be loaded";
|
|
337
|
+
readonly "chelone.rich_text.image.resize_left": "Resize image from the left edge";
|
|
338
|
+
readonly "chelone.rich_text.image.resize_right": "Resize image from the right edge";
|
|
339
|
+
readonly "chelone.rich_text.image.uploading": "Uploading image";
|
|
340
|
+
readonly "chelone.rich_text.image.view": "View image";
|
|
341
|
+
readonly "chelone.rich_text.image_apply": "Apply";
|
|
342
|
+
readonly "chelone.rich_text.image_upload": "Upload";
|
|
343
|
+
readonly "chelone.rich_text.image_url": "Image URL";
|
|
344
|
+
readonly "chelone.rich_text.invalid_image_url": "Enter a link to an image";
|
|
345
|
+
readonly "chelone.rich_text.invalid_url": "Enter a web, mail or phone link";
|
|
346
|
+
readonly "chelone.rich_text.link_apply": "Apply";
|
|
347
|
+
readonly "chelone.rich_text.link_remove": "Remove";
|
|
348
|
+
readonly "chelone.rich_text.link_url": "URL";
|
|
349
|
+
readonly "chelone.rich_text.paragraph": "Paragraph";
|
|
350
|
+
readonly "chelone.rich_text.toolbar": "Formatting";
|
|
351
|
+
readonly "chelone.action.format": "Format";
|
|
352
|
+
readonly "chelone.status_transition.change": "Change status";
|
|
353
|
+
readonly "chelone.status_transition.confirm_content": "Move to {status}?";
|
|
354
|
+
readonly "chelone.status_transition.confirm_title": "Change status?";
|
|
355
|
+
readonly "chelone.validation.invalid_json": "Invalid JSON: {message}";
|
|
184
356
|
readonly "chelone.map.load_failed": "The map could not be loaded";
|
|
185
357
|
readonly "chelone.map.no_coordinates": "No coordinates";
|
|
186
358
|
readonly "chelone.map.no_geometry": "No geometry";
|
|
@@ -186,6 +186,178 @@ var englishMessages = defineMessages({
|
|
|
186
186
|
"ra.notification.offline": "You are offline",
|
|
187
187
|
"ra.saved_queries.new_label": "Save current query",
|
|
188
188
|
"ra.saved_queries.query_name": "Query name",
|
|
189
|
-
"ra.saved_queries.remove_label_with_name": "Remove saved query \"{name}\""
|
|
189
|
+
"ra.saved_queries.remove_label_with_name": "Remove saved query \"{name}\"",
|
|
190
|
+
"chelone.assistant.close": "Close",
|
|
191
|
+
"chelone.assistant.confirm": "Run {name}?",
|
|
192
|
+
"chelone.assistant.error": "Something went wrong.",
|
|
193
|
+
"chelone.assistant.placeholder": "Ask…",
|
|
194
|
+
"chelone.assistant.retry": "Retry",
|
|
195
|
+
"chelone.assistant.send": "Send",
|
|
196
|
+
"chelone.assistant.stop": "Stop",
|
|
197
|
+
"chelone.assistant.thinking": "Thinking…",
|
|
198
|
+
"chelone.assistant.trigger": "Ask",
|
|
199
|
+
"chelone.assistant.welcome": "Hi! Ask me anything.",
|
|
200
|
+
"chelone.approval.already_approved": "You already approved",
|
|
201
|
+
"chelone.approval.approve": "Approve",
|
|
202
|
+
"chelone.approval.complete": "Fully approved ({count} of {required})",
|
|
203
|
+
"chelone.approval.count": "{count} of {required}",
|
|
204
|
+
"chelone.approval.fully_approved": "Fully approved ({count} of {required})",
|
|
205
|
+
"chelone.approval.reject": "Reject",
|
|
206
|
+
"chelone.approval_queue.confirm_reject": "Confirm reject",
|
|
207
|
+
"chelone.approval_queue.empty": "No items waiting for approval",
|
|
208
|
+
"chelone.approval_queue.reason": "Reason",
|
|
209
|
+
"chelone.approval_queue.rejected": "Rejected",
|
|
210
|
+
"chelone.block_editor.add_block": "Add block",
|
|
211
|
+
"chelone.block_editor.chart.aggregate": "Aggregate",
|
|
212
|
+
"chelone.block_editor.chart.avg": "Average",
|
|
213
|
+
"chelone.block_editor.chart.bar": "Bar",
|
|
214
|
+
"chelone.block_editor.chart.category": "Category field",
|
|
215
|
+
"chelone.block_editor.chart.count": "Count",
|
|
216
|
+
"chelone.block_editor.chart.description": "Aggregate a resource into a chart",
|
|
217
|
+
"chelone.block_editor.chart.label": "Chart",
|
|
218
|
+
"chelone.block_editor.chart.line": "Line",
|
|
219
|
+
"chelone.block_editor.chart.pie": "Pie",
|
|
220
|
+
"chelone.block_editor.chart.sum": "Sum",
|
|
221
|
+
"chelone.block_editor.chart.type": "Chart type",
|
|
222
|
+
"chelone.block_editor.chart.value": "Value field",
|
|
223
|
+
"chelone.block_editor.data.choose_resource": "Choose a resource",
|
|
224
|
+
"chelone.block_editor.data.fields": "Fields",
|
|
225
|
+
"chelone.block_editor.data.fields_hint": "title, status",
|
|
226
|
+
"chelone.block_editor.data.resource": "Resource",
|
|
227
|
+
"chelone.block_editor.drag": "Drag to move",
|
|
228
|
+
"chelone.block_editor.embed.empty": "Add a YouTube or Vimeo link",
|
|
229
|
+
"chelone.block_editor.embed.title": "Embedded video",
|
|
230
|
+
"chelone.block_editor.image.alt": "Alt text",
|
|
231
|
+
"chelone.block_editor.image.empty": "Add an image",
|
|
232
|
+
"chelone.block_editor.image.too_large": "Choose an image file up to 5 MB",
|
|
233
|
+
"chelone.block_editor.image.upload": "Upload image",
|
|
234
|
+
"chelone.block_editor.image.url": "Image URL",
|
|
235
|
+
"chelone.block_editor.image.width": "Width (%)",
|
|
236
|
+
"chelone.block_editor.no_blocks": "No blocks found",
|
|
237
|
+
"chelone.block_editor.placeholder": "Type / for blocks",
|
|
238
|
+
"chelone.block_editor.recordList.description": "Embed a live list from a resource",
|
|
239
|
+
"chelone.block_editor.recordList.label": "Record list",
|
|
240
|
+
"chelone.block_editor.recordList.no_records": "No records",
|
|
241
|
+
"chelone.block_editor.recordList.per_page": "Rows",
|
|
242
|
+
"chelone.block_editor.referenceRecord.card": "Card",
|
|
243
|
+
"chelone.block_editor.referenceRecord.description": "Embed a live record",
|
|
244
|
+
"chelone.block_editor.referenceRecord.id": "Record id",
|
|
245
|
+
"chelone.block_editor.referenceRecord.inline": "Inline",
|
|
246
|
+
"chelone.block_editor.referenceRecord.label": "Reference record",
|
|
247
|
+
"chelone.block_editor.referenceRecord.layout": "Layout",
|
|
248
|
+
"chelone.block_editor.search": "Search blocks",
|
|
249
|
+
"chelone.block_editor.toolbar.configure": "Configure",
|
|
250
|
+
"chelone.block_editor.toolbar.delete": "Delete",
|
|
251
|
+
"chelone.block_editor.toolbar.duplicate": "Duplicate",
|
|
252
|
+
"chelone.block_editor.toolbar.label": "Block actions",
|
|
253
|
+
"chelone.block_editor.toolbar.move_down": "Move down",
|
|
254
|
+
"chelone.block_editor.toolbar.move_up": "Move up",
|
|
255
|
+
"chelone.block_editor.unknown": "Unknown block: {type}. It is kept on save.",
|
|
256
|
+
"chelone.chart.empty": "No data",
|
|
257
|
+
"chelone.command_menu.account": "Account",
|
|
258
|
+
"chelone.command_menu.action.logout": "Log out",
|
|
259
|
+
"chelone.command_menu.action.refresh": "Refresh data",
|
|
260
|
+
"chelone.command_menu.action.theme_dark": "Switch to dark theme",
|
|
261
|
+
"chelone.command_menu.action.theme_light": "Switch to light theme",
|
|
262
|
+
"chelone.command_menu.action.theme_system": "Use system theme",
|
|
263
|
+
"chelone.command_menu.actions": "Actions",
|
|
264
|
+
"chelone.command_menu.close": "Close",
|
|
265
|
+
"chelone.command_menu.description": "Jump to a page or record, or run an action.",
|
|
266
|
+
"chelone.command_menu.empty": "No results found.",
|
|
267
|
+
"chelone.command_menu.footer.close": "Close",
|
|
268
|
+
"chelone.command_menu.footer.navigate": "Navigate",
|
|
269
|
+
"chelone.command_menu.footer.select": "Select",
|
|
270
|
+
"chelone.command_menu.navigate": "Navigate",
|
|
271
|
+
"chelone.command_menu.placeholder": "Search or run a command...",
|
|
272
|
+
"chelone.command_menu.recent": "Recent",
|
|
273
|
+
"chelone.command_menu.refresh": "Refresh",
|
|
274
|
+
"chelone.command_menu.resources": "Resources",
|
|
275
|
+
"chelone.command_menu.select": "Select",
|
|
276
|
+
"chelone.command_menu.theme": "Theme",
|
|
277
|
+
"chelone.command_menu.title": "Command menu",
|
|
278
|
+
"chelone.comments.anonymous": "anonymous",
|
|
279
|
+
"chelone.comments.empty": "No comments yet. Be the first.",
|
|
280
|
+
"chelone.comments.load_failed": "Could not load the comments",
|
|
281
|
+
"chelone.comments.mark_resolved": "Mark resolved",
|
|
282
|
+
"chelone.comments.placeholder": "Write a comment…",
|
|
283
|
+
"chelone.comments.post": "Post",
|
|
284
|
+
"chelone.comments.resolved": "Resolved {time}",
|
|
285
|
+
"chelone.comments.showing": "Showing the first {shown} of {total} comments",
|
|
286
|
+
"chelone.comments.showing_first": "Showing the first {shown} of {total} comments",
|
|
287
|
+
"chelone.devtools.clear": "Clear",
|
|
288
|
+
"chelone.devtools.details": "Details",
|
|
289
|
+
"chelone.devtools.empty": "No calls yet",
|
|
290
|
+
"chelone.devtools.hide": "Hide",
|
|
291
|
+
"chelone.devtools.params": "Params",
|
|
292
|
+
"chelone.devtools.result": "Result",
|
|
293
|
+
"chelone.devtools.show": "Show",
|
|
294
|
+
"chelone.devtools.title": "Data provider",
|
|
295
|
+
"chelone.diff_viewer.after": "After",
|
|
296
|
+
"chelone.diff_viewer.before": "Before",
|
|
297
|
+
"chelone.diff_viewer.empty": "(empty)",
|
|
298
|
+
"chelone.diff_viewer.field": "Field",
|
|
299
|
+
"chelone.guesser.no_schema.message": "Register a Zod schema for {resource} with defineResources so this page can be generated.",
|
|
300
|
+
"chelone.guesser.no_schema.title": "No schema registered",
|
|
301
|
+
"chelone.i18n_key_editor.copied": "Copied",
|
|
302
|
+
"chelone.i18n_key_editor.copy_failed": "Could not copy the translations",
|
|
303
|
+
"chelone.i18n_key_editor.empty": "No missing keys yet",
|
|
304
|
+
"chelone.i18n_key_editor.export": "Export",
|
|
305
|
+
"chelone.i18n_key_editor.hide": "Hide",
|
|
306
|
+
"chelone.i18n_key_editor.show": "Show",
|
|
307
|
+
"chelone.i18n_key_editor.title": "Missing keys ({count})",
|
|
308
|
+
"chelone.inspector.configure_mode": "Configure mode",
|
|
309
|
+
"chelone.inspector.customize": "Customize",
|
|
310
|
+
"chelone.inspector.drag_field": "Drag to reorder",
|
|
311
|
+
"chelone.inspector.empty": "Pick an outlined element to configure it",
|
|
312
|
+
"chelone.inspector.inputs_title": "Form",
|
|
313
|
+
"chelone.inspector.title": "Inspector",
|
|
314
|
+
"chelone.job_monitor.attempts": "Attempts: {attempts}",
|
|
315
|
+
"chelone.job_monitor.empty": "No {status} jobs",
|
|
316
|
+
"chelone.job_monitor.hide_payload": "Hide payload",
|
|
317
|
+
"chelone.job_monitor.no_type": "(no type)",
|
|
318
|
+
"chelone.job_monitor.retry": "Retry",
|
|
319
|
+
"chelone.job_monitor.show_payload": "Show payload",
|
|
320
|
+
"chelone.job_monitor.title": "Jobs",
|
|
321
|
+
"chelone.kanban_board.empty": "No items",
|
|
322
|
+
"chelone.kanban_board.move": "Move {title}",
|
|
323
|
+
"chelone.lock.locked_by": "Locked by {identity}",
|
|
324
|
+
"chelone.navigation.load_more": "Load more",
|
|
325
|
+
"chelone.navigation.no_more_rows": "No more rows",
|
|
326
|
+
"chelone.onboarding_tour.back": "Back",
|
|
327
|
+
"chelone.onboarding_tour.finish": "Finish",
|
|
328
|
+
"chelone.onboarding_tour.next": "Next",
|
|
329
|
+
"chelone.onboarding_tour.skip": "Skip",
|
|
330
|
+
"chelone.permission_matrix.all": "All",
|
|
331
|
+
"chelone.permission_matrix.cell": "{role} {action} {resource}",
|
|
332
|
+
"chelone.permission_matrix.inherited": "Granted by a wildcard",
|
|
333
|
+
"chelone.permission_matrix.no_roles": "No roles defined",
|
|
334
|
+
"chelone.permission_matrix.resource": "Resource",
|
|
335
|
+
"chelone.pivot_grid.no_value": "(none)",
|
|
336
|
+
"chelone.pivot_grid.total": "Total",
|
|
337
|
+
"chelone.record_timeline.empty": "No activity yet",
|
|
338
|
+
"chelone.rich_text.block_type": "Block type",
|
|
339
|
+
"chelone.rich_text.color": "Text color",
|
|
340
|
+
"chelone.rich_text.image": "Image",
|
|
341
|
+
"chelone.rich_text.image.close": "Close",
|
|
342
|
+
"chelone.rich_text.image.error": "The image could not be loaded",
|
|
343
|
+
"chelone.rich_text.image.resize_left": "Resize image from the left edge",
|
|
344
|
+
"chelone.rich_text.image.resize_right": "Resize image from the right edge",
|
|
345
|
+
"chelone.rich_text.image.uploading": "Uploading image",
|
|
346
|
+
"chelone.rich_text.image.view": "View image",
|
|
347
|
+
"chelone.rich_text.image_apply": "Apply",
|
|
348
|
+
"chelone.rich_text.image_upload": "Upload",
|
|
349
|
+
"chelone.rich_text.image_url": "Image URL",
|
|
350
|
+
"chelone.rich_text.invalid_image_url": "Enter a link to an image",
|
|
351
|
+
"chelone.rich_text.invalid_url": "Enter a web, mail or phone link",
|
|
352
|
+
"chelone.rich_text.link_apply": "Apply",
|
|
353
|
+
"chelone.rich_text.link_remove": "Remove",
|
|
354
|
+
"chelone.rich_text.link_url": "URL",
|
|
355
|
+
"chelone.rich_text.paragraph": "Paragraph",
|
|
356
|
+
"chelone.rich_text.toolbar": "Formatting",
|
|
357
|
+
"chelone.action.format": "Format",
|
|
358
|
+
"chelone.status_transition.change": "Change status",
|
|
359
|
+
"chelone.status_transition.confirm_content": "Move to {status}?",
|
|
360
|
+
"chelone.status_transition.confirm_title": "Change status?",
|
|
361
|
+
"chelone.validation.invalid_json": "Invalid JSON: {message}"
|
|
190
362
|
});
|
|
191
363
|
export { englishMessages };
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/** Every key the i18n key editor labels itself with. The panel never lists these. */
|
|
2
|
+
export declare const OWN_KEY_PREFIX = "chelone.i18n_key_editor.";
|
|
3
|
+
/** How long its export button shows `Copied`. */
|
|
4
|
+
export declare const COPIED_MS = 1500;
|
|
1
5
|
export interface MissingKeyEntry {
|
|
2
6
|
key: string;
|
|
3
7
|
fallback: string | undefined;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
// src/i18n/missing-keys.ts
|
|
2
|
+
/** Every key the i18n key editor labels itself with. The panel never lists these. */
|
|
3
|
+
var OWN_KEY_PREFIX = "chelone.i18n_key_editor.";
|
|
4
|
+
/** How long its export button shows `Copied`. */
|
|
5
|
+
var COPIED_MS = 1500;
|
|
2
6
|
var NO_ENTRIES = [];
|
|
3
7
|
function createMissingKeyStore() {
|
|
4
8
|
const byLocale = /* @__PURE__ */ new Map();
|
|
@@ -65,4 +69,4 @@ function createMissingKeyStore() {
|
|
|
65
69
|
}
|
|
66
70
|
};
|
|
67
71
|
}
|
|
68
|
-
export { createMissingKeyStore };
|
|
72
|
+
export { COPIED_MS, OWN_KEY_PREFIX, createMissingKeyStore };
|