@mmlogic/components 0.4.2 → 0.4.3
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/cjs/mrd-boolean-field_24.cjs.entry.js +34 -18
- package/dist/collection/components/documents/mrd-document-container/mrd-document-container.js +11 -4
- package/dist/collection/components/documents/mrd-document-list/mrd-document-list.js +28 -11
- package/dist/collection/components/documents/mrd-document-list/tree-view.js +1 -1
- package/dist/collection/components/layout/mrd-layout-section/mrd-layout-section.js +11 -4
- package/dist/collection/components/table/mrd-table/mrd-table.js +19 -5
- package/dist/collection/dev/app.js +4 -3
- package/dist/collection/utils/query-params.js +0 -4
- package/dist/components/mrd-document-container2.js +1 -1
- package/dist/components/mrd-document-list2.js +1 -1
- package/dist/components/mrd-layout-section.js +1 -1
- package/dist/components/mrd-table2.js +1 -1
- package/dist/esm/mrd-boolean-field_24.entry.js +34 -18
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
- package/dist/mosterdcomponents/p-e816d459.entry.js +1 -0
- package/dist/types/components/documents/mrd-document-container/mrd-document-container.d.ts +2 -0
- package/dist/types/components/documents/mrd-document-list/mrd-document-list.d.ts +8 -1
- package/dist/types/components/documents/mrd-document-list/tree-view.d.ts +1 -1
- package/dist/types/components/layout/mrd-layout-section/mrd-layout-section.d.ts +2 -0
- package/dist/types/components/table/mrd-table/mrd-table.d.ts +8 -2
- package/dist/types/components.d.ts +12 -10
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/query-params.d.ts +14 -0
- package/package.json +1 -1
- package/dist/mosterdcomponents/cell-renderer-PbcEU4ph.js.map +0 -1
- package/dist/mosterdcomponents/client-layout-DCOAAH92.js.map +0 -1
- package/dist/mosterdcomponents/field-helpers-CASS3akr.js.map +0 -1
- package/dist/mosterdcomponents/file-upload-common-D1ndi6cN.js.map +0 -1
- package/dist/mosterdcomponents/format-BAfsQfy1.js.map +0 -1
- package/dist/mosterdcomponents/i18n-B1IIkRF9.js.map +0 -1
- package/dist/mosterdcomponents/index-AokUFVX0.js.map +0 -1
- package/dist/mosterdcomponents/index-CprJSlzK.js.map +0 -1
- package/dist/mosterdcomponents/index.esm.js.map +0 -1
- package/dist/mosterdcomponents/mosterdcomponents.esm.js.map +0 -1
- package/dist/mosterdcomponents/p-aae8a9dc.entry.js +0 -1
- package/dist/mosterdcomponents/query-params-B1HfnMOl.js.map +0 -1
- package/dist/mosterdcomponents/quill-C9pgw_k-.js.map +0 -1
- package/dist/mosterdcomponents/validation-DbEViuiw.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
2
|
import { ClientArchetype, ClientLayoutItem, ClientLayoutNavigateBehaviour } from '../../../types/client-layout';
|
|
3
|
+
import { ListNavigationContext } from '../../../utils/query-params';
|
|
3
4
|
/**
|
|
4
5
|
* Owns a document collection view: a single toolbar (view switch + collection
|
|
5
6
|
* actions like "New folder", and — later — upload / drag-drop) plus the two
|
|
@@ -57,6 +58,7 @@ export declare class MrdDocumentContainer {
|
|
|
57
58
|
href?: string;
|
|
58
59
|
label: string;
|
|
59
60
|
navigateBehaviour?: ClientLayoutNavigateBehaviour;
|
|
61
|
+
listContext?: ListNavigationContext;
|
|
60
62
|
}>;
|
|
61
63
|
/** A table toolbar action was triggered. */
|
|
62
64
|
mrdAction: EventEmitter<{
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
2
|
import { ClientArchetype, ClientLayoutItem } from '../../../types/client-layout';
|
|
3
|
+
import { ListNavigationContext } from '../../../utils/query-params';
|
|
3
4
|
import { DistinctValue, DocRow } from './folder-tree';
|
|
4
5
|
/**
|
|
5
6
|
* Archetype-driven document collection view. Renders documents as a lazy,
|
|
@@ -48,10 +49,12 @@ export declare class MrdDocumentList {
|
|
|
48
49
|
path: string;
|
|
49
50
|
qs: string;
|
|
50
51
|
}>;
|
|
51
|
-
/** A document row was clicked. Host routes to the document object page.
|
|
52
|
+
/** A document row was clicked. Host routes to the document object page. `listContext` can
|
|
53
|
+
* be used to re-fetch this exact record (or its neighbours) via `{path}?{qs}&page={index}&size=1`. */
|
|
52
54
|
mrdNavigate: EventEmitter<{
|
|
53
55
|
href?: string;
|
|
54
56
|
label: string;
|
|
57
|
+
listContext?: ListNavigationContext;
|
|
55
58
|
}>;
|
|
56
59
|
/** Emitted whenever the "can create a folder here" state changes, so a host
|
|
57
60
|
* toolbar (mrd-document-container) can enable/disable its New folder button. */
|
|
@@ -143,6 +146,10 @@ export declare class MrdDocumentList {
|
|
|
143
146
|
private baseParams;
|
|
144
147
|
private emitContainerDistinct;
|
|
145
148
|
private emitFolderDistinct;
|
|
149
|
+
/** Filter qs scoping a folder's documents: view-level filters + container/folder match.
|
|
150
|
+
* Shared by emitDocuments() (the fetch) and openDoc() (prev/next list context), so both
|
|
151
|
+
* always agree on exactly what query a document belongs to. */
|
|
152
|
+
private buildDocQs;
|
|
146
153
|
private emitDocuments;
|
|
147
154
|
/** Inject distinct values for a node. `nodeId` is the sentinel root (containers)
|
|
148
155
|
* or a container node id (folders). */
|
|
@@ -14,7 +14,7 @@ export interface TreeViewContext {
|
|
|
14
14
|
on: {
|
|
15
15
|
toggleContainer: (node: TreeNode) => void;
|
|
16
16
|
toggleFolder: (container: TreeNode, node: TreeNode) => void;
|
|
17
|
-
openDoc: (doc: DocRow) => void;
|
|
17
|
+
openDoc: (doc: DocRow, node: TreeNode, container: TreeNode) => void;
|
|
18
18
|
docDragStart: (e: DragEvent, doc: DocRow, node: TreeNode) => void;
|
|
19
19
|
docDragEnd: () => void;
|
|
20
20
|
nodeDragOver: (e: DragEvent, node: TreeNode) => void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
2
|
import { ClientLayoutItem, ClientLayoutItemNavigate, ClientLayoutNavigateBehaviour, ClientViewMetadata, ClientArchetype, RelationSearchResult } from '../../../types/client-layout';
|
|
3
3
|
import { DistinctValue } from '../../documents/mrd-document-list/folder-tree';
|
|
4
|
+
import { ListNavigationContext } from '../../../utils/query-params';
|
|
4
5
|
export declare class MrdLayoutSection {
|
|
5
6
|
el: HTMLElement;
|
|
6
7
|
/** Items from one layout entry in ClientDashboardMetadata.layouts[]. */
|
|
@@ -34,6 +35,7 @@ export declare class MrdLayoutSection {
|
|
|
34
35
|
label: string;
|
|
35
36
|
navigate?: ClientLayoutItemNavigate;
|
|
36
37
|
navigateBehaviour?: ClientLayoutNavigateBehaviour;
|
|
38
|
+
listContext?: ListNavigationContext;
|
|
37
39
|
}>;
|
|
38
40
|
mrdSearch: EventEmitter<{
|
|
39
41
|
query: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
2
|
import { ColumnFilter } from '../../../utils/cell-renderer';
|
|
3
3
|
import { AggregationResult, ClientLayoutItem } from '../../../types/client-layout';
|
|
4
|
+
import { ListNavigationContext } from '../../../utils/query-params';
|
|
4
5
|
export declare class MrdTable {
|
|
5
6
|
el: HTMLElement;
|
|
6
7
|
private pendingPages;
|
|
@@ -93,8 +94,13 @@ export declare class MrdTable {
|
|
|
93
94
|
mrdPageError: EventEmitter<{
|
|
94
95
|
page: number;
|
|
95
96
|
}>;
|
|
96
|
-
/** Fired when a data row is clicked.
|
|
97
|
-
|
|
97
|
+
/** Fired when a data row is clicked. `listContext` is included in paginated mode and can
|
|
98
|
+
* be used to re-fetch this exact record (or its neighbours) via `{path}?{qs}&page={index}&size=1`
|
|
99
|
+
* — omitted in non-paginated (`rows` prop) mode since the host already holds the full array. */
|
|
100
|
+
mrdRowClick: EventEmitter<{
|
|
101
|
+
row: Record<string, any>;
|
|
102
|
+
listContext?: ListNavigationContext;
|
|
103
|
+
}>;
|
|
98
104
|
/** Fired when a toolbar action button is clicked.
|
|
99
105
|
* For 'export': includes `path` (relative excel path) and `qs` (current sort+filter params).
|
|
100
106
|
* For 'create': includes `dataClass` (target type) and `parentPath` (e.g. /buyers/123 for RELATED_VIEW). */
|
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
8
|
import { ClientLayout, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemFieldDataType, ClientLayoutItemRelationDisplayType, ClientLayoutItemRelationEditBehavior, ClientListValue, CurrencyValue, RelationSearchResult } from "./types";
|
|
9
9
|
import { AggregationResult, ClientArchetype, ClientLayoutItem, ClientLayoutItemNavigate, ClientLayoutNavigateBehaviour, ClientViewMetadata, HyperlinkValue, RelationSearchResult as RelationSearchResult1 } from "./types/client-layout";
|
|
10
|
+
import { ListNavigationContext } from "./utils/query-params";
|
|
10
11
|
import { DistinctValue, DocRow } from "./components/documents/mrd-document-list/folder-tree";
|
|
11
12
|
export { ClientLayout, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemFieldDataType, ClientLayoutItemRelationDisplayType, ClientLayoutItemRelationEditBehavior, ClientListValue, CurrencyValue, RelationSearchResult } from "./types";
|
|
12
13
|
export { AggregationResult, ClientArchetype, ClientLayoutItem, ClientLayoutItemNavigate, ClientLayoutNavigateBehaviour, ClientViewMetadata, HyperlinkValue, RelationSearchResult as RelationSearchResult1 } from "./types/client-layout";
|
|
14
|
+
export { ListNavigationContext } from "./utils/query-params";
|
|
13
15
|
export { DistinctValue, DocRow } from "./components/documents/mrd-document-list/folder-tree";
|
|
14
16
|
export namespace Components {
|
|
15
17
|
interface MrdBooleanField {
|
|
@@ -1034,7 +1036,7 @@ declare global {
|
|
|
1034
1036
|
"mrdLoadPage": { page: number; sort: string; path: string; qs: string; nodeId?: string };
|
|
1035
1037
|
"mrdLoadDistinct": { nodeId: string; distinct: string; path: string; qs: string };
|
|
1036
1038
|
"mrdLoadAggregations": { path: string; qs: string; aggQs: string };
|
|
1037
|
-
"mrdNavigate": { href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour };
|
|
1039
|
+
"mrdNavigate": { href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext };
|
|
1038
1040
|
"mrdAction": { action: string; path?: string; qs?: string; parentPath?: string | null; basicType?: string };
|
|
1039
1041
|
"mrdUpdateObject": { href: string; values: Record<string, unknown> };
|
|
1040
1042
|
"mrdUpload": { file: File };
|
|
@@ -1068,7 +1070,7 @@ declare global {
|
|
|
1068
1070
|
interface HTMLMrdDocumentListElementEventMap {
|
|
1069
1071
|
"mrdLoadDistinct": { nodeId: string; distinct: string; path: string; qs: string };
|
|
1070
1072
|
"mrdLoadPage": { nodeId: string; page: number; sort: string; path: string; qs: string };
|
|
1071
|
-
"mrdNavigate": { href?: string; label: string };
|
|
1073
|
+
"mrdNavigate": { href?: string; label: string; listContext?: ListNavigationContext };
|
|
1072
1074
|
"mrdCanCreate": boolean;
|
|
1073
1075
|
"mrdUpdateObject": { href: string; values: Record<string, unknown> };
|
|
1074
1076
|
"mrdUpload": { file: File };
|
|
@@ -1274,7 +1276,7 @@ declare global {
|
|
|
1274
1276
|
new (): HTMLMrdImageFieldElement;
|
|
1275
1277
|
};
|
|
1276
1278
|
interface HTMLMrdLayoutSectionElementEventMap {
|
|
1277
|
-
"mrdNavigate": { href?: string; label: string; navigate?: ClientLayoutItemNavigate; navigateBehaviour?: ClientLayoutNavigateBehaviour };
|
|
1279
|
+
"mrdNavigate": { href?: string; label: string; navigate?: ClientLayoutItemNavigate; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext };
|
|
1278
1280
|
"mrdSearch": { query: string; dataClass: string };
|
|
1279
1281
|
"mrdDownload": { href: string; fileName: string };
|
|
1280
1282
|
"mrdLoadViewPage": { name: string; page: number; sort: string; path: string; qs: string; nodeId?: string };
|
|
@@ -1396,7 +1398,7 @@ declare global {
|
|
|
1396
1398
|
interface HTMLMrdTableElementEventMap {
|
|
1397
1399
|
"mrdLoadPage": { page: number; sort: string; path: string; qs: string };
|
|
1398
1400
|
"mrdPageError": { page: number };
|
|
1399
|
-
"mrdRowClick": Record<string, any>;
|
|
1401
|
+
"mrdRowClick": { row: Record<string, any>; listContext?: ListNavigationContext };
|
|
1400
1402
|
"mrdAction": { action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null; basicType?: string };
|
|
1401
1403
|
"mrdDownload": { href: string; fileName: string };
|
|
1402
1404
|
"mrdLoadAggregations": { path: string; qs: string; aggQs: string };
|
|
@@ -1667,7 +1669,7 @@ declare namespace LocalJSX {
|
|
|
1667
1669
|
/**
|
|
1668
1670
|
* A row / document was activated. Host routes to the object page. Documents are always the "quick look" use case, so navigateBehaviour is hardcoded to OVERLAY_PAGE here — unlike the generic VIEW/RELATED_VIEW table path in mrd-layout-section, which takes it from the item's configuration.
|
|
1669
1671
|
*/
|
|
1670
|
-
"onMrdNavigate"?: (event: MrdDocumentContainerCustomEvent<{ href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour }>) => void;
|
|
1672
|
+
"onMrdNavigate"?: (event: MrdDocumentContainerCustomEvent<{ href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext }>) => void;
|
|
1671
1673
|
/**
|
|
1672
1674
|
* Generic "update an existing object" request, re-emitted from the folder tree (a document was dragged into another folder/container).
|
|
1673
1675
|
*/
|
|
@@ -1738,9 +1740,9 @@ declare namespace LocalJSX {
|
|
|
1738
1740
|
*/
|
|
1739
1741
|
"onMrdLoadPage"?: (event: MrdDocumentListCustomEvent<{ nodeId: string; page: number; sort: string; path: string; qs: string }>) => void;
|
|
1740
1742
|
/**
|
|
1741
|
-
* A document row was clicked. Host routes to the document object page.
|
|
1743
|
+
* A document row was clicked. Host routes to the document object page. `listContext` can be used to re-fetch this exact record (or its neighbours) via `{path}?{qs}&page={index}&size=1`.
|
|
1742
1744
|
*/
|
|
1743
|
-
"onMrdNavigate"?: (event: MrdDocumentListCustomEvent<{ href?: string; label: string }>) => void;
|
|
1745
|
+
"onMrdNavigate"?: (event: MrdDocumentListCustomEvent<{ href?: string; label: string; listContext?: ListNavigationContext }>) => void;
|
|
1744
1746
|
/**
|
|
1745
1747
|
* Generic "update an existing object" request — fired when a document is dragged into another folder/container. Host PATCHes `href` with `values` (no move/folder knowledge needed). `values` carries the new folder string (or null for the container root) and, on a cross-container move, the new container relation href.
|
|
1746
1748
|
*/
|
|
@@ -2091,7 +2093,7 @@ declare namespace LocalJSX {
|
|
|
2091
2093
|
* Re-emitted from an embedded mrd-table's or mrd-document-list's mrdLoadPage; host fetches the rows and calls setViewPage(). `nodeId` is present for a document-list folder load.
|
|
2092
2094
|
*/
|
|
2093
2095
|
"onMrdLoadViewPage"?: (event: MrdLayoutSectionCustomEvent<{ name: string; page: number; sort: string; path: string; qs: string; nodeId?: string }>) => void;
|
|
2094
|
-
"onMrdNavigate"?: (event: MrdLayoutSectionCustomEvent<{ href?: string; label: string; navigate?: ClientLayoutItemNavigate; navigateBehaviour?: ClientLayoutNavigateBehaviour }>) => void;
|
|
2096
|
+
"onMrdNavigate"?: (event: MrdLayoutSectionCustomEvent<{ href?: string; label: string; navigate?: ClientLayoutItemNavigate; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext }>) => void;
|
|
2095
2097
|
"onMrdSearch"?: (event: MrdLayoutSectionCustomEvent<{ query: string; dataClass: string }>) => void;
|
|
2096
2098
|
/**
|
|
2097
2099
|
* Generic "update an existing object" request from an embedded document view (a document dragged into another folder). Host PATCHes `href` with `values`.
|
|
@@ -2337,9 +2339,9 @@ declare namespace LocalJSX {
|
|
|
2337
2339
|
*/
|
|
2338
2340
|
"onMrdPageError"?: (event: MrdTableCustomEvent<{ page: number }>) => void;
|
|
2339
2341
|
/**
|
|
2340
|
-
* Fired when a data row is clicked.
|
|
2342
|
+
* Fired when a data row is clicked. `listContext` is included in paginated mode and can be used to re-fetch this exact record (or its neighbours) via `{path}?{qs}&page={index}&size=1` — omitted in non-paginated (`rows` prop) mode since the host already holds the full array.
|
|
2341
2343
|
*/
|
|
2342
|
-
"onMrdRowClick"?: (event: MrdTableCustomEvent<Record<string, any
|
|
2344
|
+
"onMrdRowClick"?: (event: MrdTableCustomEvent<{ row: Record<string, any>; listContext?: ListNavigationContext }>) => void;
|
|
2343
2345
|
/**
|
|
2344
2346
|
* Records per page (must match the API page size).
|
|
2345
2347
|
* @default 20
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,6 +3,20 @@ import { ViewFilter } from '../types/client-layout';
|
|
|
3
3
|
* Shared path/query-param conventions for list requests,
|
|
4
4
|
* used by mrd-table and mrd-document-list.
|
|
5
5
|
*/
|
|
6
|
+
/** Enough context to re-fetch one specific record from the query that produced a list,
|
|
7
|
+
* via `{path}?{qs}&page={index}&size=1` — used to drive prev/next navigation in a host
|
|
8
|
+
* overlay. `qs` deliberately excludes the `page` param since it is page-independent
|
|
9
|
+
* (filters/sort apply uniformly across all pages of the same query). */
|
|
10
|
+
export interface ListNavigationContext {
|
|
11
|
+
/** Absolute position of the record within the query's result set. */
|
|
12
|
+
index: number;
|
|
13
|
+
/** Raw sort param value, e.g. "name,desc" or "" when unsorted. */
|
|
14
|
+
sort: string;
|
|
15
|
+
/** Relative data path (VIEW: /{dataClass}; RELATED_VIEW: /{fromClass}/{parentId}/{dataClass}). */
|
|
16
|
+
path: string;
|
|
17
|
+
/** Filter/type/view-filter/sort query string, without `page`. */
|
|
18
|
+
qs: string;
|
|
19
|
+
}
|
|
6
20
|
/** Applies the view-level static filters to `params` using the API operator conventions. */
|
|
7
21
|
export declare function applyViewFilters(params: URLSearchParams, filters: ViewFilter[] | null | undefined): void;
|
|
8
22
|
/** VIEW: `/{dataClass}`; RELATED_VIEW: `/{fromClass}/{parentId}/{dataClass}`. */
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cell-renderer-PbcEU4ph.js","sources":["src/utils/cell-renderer.ts"],"sourcesContent":["import { formatNumber, formatPercentage, formatCurrency, formatDate, formatDateTime, formatTime } from './format';\nimport { ClientLayoutItem, ClientLayoutItemType } from '../types/client-layout';\n\n/** TableColumn is an alias for ClientLayoutItem — used for table column definitions. */\nexport type TableColumn = ClientLayoutItem;\n\n/** One entry in the alternativeViews array for mrd-table. */\nexport interface AlternativeView {\n /** Named view identifier, emitted in mrdSwitchView. */\n name: string;\n /** Display text; falls back to name when absent. */\n label?: string;\n /** Optional class override (TypeFQN); emitted in mrdSwitchView. */\n class?: string;\n}\n\n/** Defines a toolbar action button for mrd-table. */\nexport interface TableAction {\n /** Machine-readable identifier, e.g. 'create' | 'export'. Emitted in mrdAction event. */\n action: string;\n /** Tooltip text (and label fallback when no icon is provided). */\n label: string;\n /** SVG sprite href, e.g. \"assets/sprites.svg#icon-plus\". Optional. */\n icon?: string;\n /** Button style variant. Defaults to 'secondary'. */\n variant?: 'primary' | 'secondary' | 'danger';\n disabled?: boolean;\n basicType?: string;\n}\n\n/** Represents an active filter on a single column. */\nexport interface ColumnFilter {\n field: string;\n dataType: string;\n /** Text operator — only relevant for text-like data types. */\n operator?: 'contains' | 'startsWith' | 'equals' | 'isEmpty' | 'isNotEmpty';\n /** Single value (boolean, exact text/number/date). */\n value?: string | number | boolean | null;\n /** Range start (≥) — future API support. */\n from?: string | number | null;\n /** Range end (≤) — future API support. */\n to?: string | number | null;\n /** LIST: keys of selected items to include. */\n values?: string[];\n}\n\nexport class CellRenderer {\n static render(column: TableColumn, row: Record<string, any>, locale: string): string {\n if (column.type === ClientLayoutItemType.RELATION) {\n const name = column.name ?? '';\n const link = row?._links?.[name];\n if (!link) return '';\n if (Array.isArray(link)) return link.map((l: any) => l.name ?? '').filter(Boolean).join(', ');\n return link.name ?? '';\n }\n\n if (column.type !== ClientLayoutItemType.FIELD) return '';\n\n const name = column.name ?? '';\n const dataType = column.dataType;\n const listItems = column.listItems;\n const raw = row?.[name];\n if (raw == null || raw === '') return '';\n\n const values = Array.isArray(raw) ? raw : [raw];\n return values\n .map(v => CellRenderer.renderValue(dataType ?? 'TEXT', v, listItems ?? [], locale))\n .filter(s => s !== '')\n .join(', ');\n }\n\n static renderValue(\n dataType: string,\n value: any,\n listItems: Array<{ key: string; label: string }>,\n locale: string,\n ): string {\n switch (dataType) {\n case 'INTEGER':\n return formatNumber(Number(value), locale, { maximumFractionDigits: 0 });\n case 'DECIMAL':\n return formatNumber(Number(value), locale);\n case 'PERCENTAGE':\n return formatPercentage(Number(value), locale);\n case 'CURRENCY': {\n const { amount, currency } = typeof value === 'object' && value !== null\n ? value\n : { amount: value, currency: '' };\n return currency\n ? formatCurrency(Number(amount), currency, locale)\n : formatNumber(Number(amount), locale);\n }\n case 'DATE':\n return formatDate(value, locale);\n case 'DATETIME':\n return formatDateTime(value, locale);\n case 'TIME':\n return formatTime(value, locale);\n case 'BOOLEAN':\n return value ? '✓' : '';\n case 'FILE':\n case 'IMAGE':\n return typeof value === 'object' && value !== null ? (value.fileName ?? '') : '';\n case 'LIST': {\n const item = listItems.find(li => li.key === String(value));\n return item?.label ?? String(value);\n }\n case 'TEXTBLOCK': {\n const stripped = String(value).replace(/<[^>]*>/g, '');\n const txt = document.createElement('textarea');\n txt.innerHTML = stripped;\n return txt.value.trim();\n }\n case 'LONGTEXT':\n return String(value).replace(/[\\r\\n]+/g, ' ').trim();\n case 'JSON': {\n const str = typeof value === 'object' ? JSON.stringify(value) : String(value);\n return str.replace(/[\\r\\n]+/g, ' ').trim();\n }\n case 'SECRET':\n return value ? '••••••••' : '';\n default:\n return String(value);\n }\n }\n\n /**\n * Returns syntax-highlighted JSON as an HTML string with inline styles.\n * compact=true → single line (no indentation); compact=false → pretty-printed.\n */\n static formatJson(value: any, compact = false): string {\n try {\n const parsed = typeof value === 'string' ? JSON.parse(value) : value;\n const json = compact ? JSON.stringify(parsed) : JSON.stringify(parsed, null, 2);\n return json.replace(\n /(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g,\n match => {\n let style = 'color:#2aa198';\n if (/^\"/.test(match)) {\n style = /:$/.test(match) ? 'color:#881391' : 'color:#268bd2';\n } else if (/true|false/.test(match)) {\n style = 'color:#b58900';\n } else if (/null/.test(match)) {\n style = 'color:#dc322f';\n }\n return `<span style=\"${style}\">${match}</span>`;\n },\n );\n } catch {\n return String(value);\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-layout-DCOAAH92.js","sources":["src/types/client-layout.ts"],"sourcesContent":["// ─── Layout type ──────────────────────────────────────────────────────────────\n\nexport enum ClientLayoutType {\n OBJECT_FORM_DASHBOARD = 'OBJECT_FORM_DASHBOARD',\n CLASS_DASHBOARD = 'CLASS_DASHBOARD',\n GENERAL_DASHBOARD = 'GENERAL_DASHBOARD',\n NAVIGATION_PANE = 'NAVIGATION_PANE',\n}\n\n// ─── Item types ───────────────────────────────────────────────────────────────\n\nexport enum ClientLayoutItemType {\n // Form / data input\n FIELD = 'FIELD',\n RELATION = 'RELATION',\n // Layout structure\n SECTION = 'SECTION',\n GROUP = 'GROUP',\n // Read-only / display\n HEADER = 'HEADER',\n TEXT = 'TEXT',\n // Navigation / actions\n NAVIGATE = 'NAVIGATE',\n ACTION = 'ACTION',\n SEARCH = 'SEARCH',\n // Dashboard views\n VIEW = 'VIEW',\n RELATED_VIEW = 'RELATED_VIEW',\n RELATED_OBJECT = 'RELATED_OBJECT',\n}\n\n// ─── Field data types ─────────────────────────────────────────────────────────\n\nexport enum ClientLayoutItemFieldDataType {\n TEXT = 'TEXT',\n TEXTBLOCK = 'TEXTBLOCK',\n INTEGER = 'INTEGER',\n DECIMAL = 'DECIMAL',\n PERCENTAGE = 'PERCENTAGE',\n CURRENCY = 'CURRENCY',\n BOOLEAN = 'BOOLEAN',\n DATE = 'DATE',\n DATETIME = 'DATETIME',\n TIME = 'TIME',\n EMAIL = 'EMAIL',\n HYPERLINK = 'HYPERLINK',\n LIST = 'LIST',\n FILE = 'FILE',\n IMAGE = 'IMAGE',\n LONGTEXT = 'LONGTEXT',\n JSON = 'JSON',\n SECRET = 'SECRET',\n}\n\n// ─── Relation display / edit behaviour ───────────────────────────────────────\n\nexport enum ClientLayoutItemRelationDisplayType {\n SEARCH = 'SEARCH',\n DROPDOWN = 'DROPDOWN',\n CHECKBOX = 'CHECKBOX',\n}\n\nexport enum ClientLayoutItemRelationEditBehavior {\n SEARCH = 'SEARCH',\n DROPDOWN = 'DROPDOWN',\n CHECKBOX = 'CHECKBOX',\n}\n\n// ─── VIEW / RELATED_VIEW navigate behaviour ──────────────────────────────────\n\n/** How navigating from a row/document in this VIEW or RELATED_VIEW should open\n * its target: a full page navigation, or an overlay on top of the current page. */\nexport enum ClientLayoutNavigateBehaviour {\n PAGE = 'PAGE',\n OVERLAY_PAGE = 'OVERLAY_PAGE',\n}\n\n// ─── Data object link types (API _links shape) ───────────────────────────────\n\n/** A single sub-link within a multi-value relation link. */\nexport interface DataObjectSubLink {\n href: string;\n name: string;\n}\n\n/** Link object as returned by the API on a data object's `_links` map. */\nexport interface DataObjectLink {\n href: string;\n name?: string;\n values?: DataObjectSubLink[];\n}\n\n// ─── Shared value types ───────────────────────────────────────────────────────\n\n/** A selectable list item as returned by the API. */\nexport interface ClientListValue {\n /** Raw key stored in the database (API uses `key`, older code used `value`). */\n key: string;\n label: string;\n color?: string | null;\n backgroundColor?: string | null;\n}\n\nexport interface CurrencyValue {\n amount: number | null;\n currency: string;\n decimals?: number;\n}\n\nexport interface HyperlinkValue {\n href: string;\n name?: string;\n}\n\nexport interface RelationSearchResult {\n id: string;\n label: string;\n description?: string;\n}\n\n// ─── Archetypes (semantic type contracts) ────────────────────────────────────\n\n/**\n * A resolved archetype binding as published on a dashboard.\n * `archetype` is the platform-defined id (e.g. `commons.document`); `slots` maps\n * each slot name to the concrete field/relation name on this type. The client\n * keys on the archetype id and reads values from the data endpoint via the map;\n * the slot kind (value vs relation) is known from the archetype id itself and is\n * not published.\n */\nexport interface ClientArchetype {\n archetype: string;\n slots: Record<string, string>;\n}\n\n/** Well-known archetype ids the client renders specially. */\nexport const ARCHETYPE_DOCUMENT = 'commons.document';\n\n/**\n * Find a binding for `archetypeId` in a published `archetypes` list.\n * Returns `undefined` when the archetype is absent — callers fall back to the\n * generic table/field rendering.\n */\nexport function resolveArchetype(\n archetypes: ClientArchetype[] | null | undefined,\n archetypeId: string,\n): ClientArchetype | undefined {\n return (archetypes ?? []).find(a => a.archetype === archetypeId);\n}\n\n// ─── Item definitions ─────────────────────────────────────────────────────────\n\nexport interface ClientLayoutItemField {\n name: string;\n label: string;\n dataType: ClientLayoutItemFieldDataType;\n required: boolean;\n disabled?: boolean;\n multiple?: boolean;\n header?: boolean;\n defaultValue?: string | null;\n listItems?: ClientListValue[] | null;\n // UI hints — optional, not sent by API\n placeholder?: string;\n accept?: string;\n maxSize?: number;\n decimalPrecision?: number;\n currencyCode?: string;\n /** Aggregate function to render in the table totals row. */\n aggregate?: 'sum' | 'avg' | 'count' | null;\n historyEnabled?: boolean;\n}\n\n/** Response shape from the /aggregations endpoint.\n * `count` is a plain number (total record count) when returned at the top level. */\nexport interface AggregationResult {\n total?: number;\n count?: number | Record<string, number>;\n sum?: Record<string, number>;\n avg?: Record<string, number>;\n}\n\nexport interface ClientLayoutItemRelation {\n name: string;\n label: string;\n relatedClass: string;\n mostSignificantClass?: string;\n displayType?: ClientLayoutItemRelationDisplayType;\n editBehavior?: ClientLayoutItemRelationEditBehavior | null;\n commonRelation?: string;\n required: boolean;\n disabled?: boolean;\n multiple?: boolean;\n defaultValue?: string | null;\n dropdownValues?: ClientListValue[];\n}\n\nexport interface ClientLayoutItemNavigate {\n dataClass: string;\n icon?: string | null;\n navigationType?: string | null;\n}\n\nexport interface ClientLayoutItemRelatedView {\n name: string;\n fromClass?: string | null;\n relatedClass: string;\n filterClass?: string | null;\n showTitle: boolean;\n}\n\nexport interface ClientLayoutItemRelatedObject {\n name: string;\n relatedClass: string;\n}\n\nexport interface ClientLayoutItemSearch {\n dataClass: string;\n showTitle: boolean;\n}\n\n// ─── Generic item ─────────────────────────────────────────────────────────────\n\nexport interface ClientCreateType {\n type: string;\n label: string;\n}\n\n/**\n * A single item in a ClientLayout. The `type` discriminator determines which\n * optional fields are present. Components should only act on types they\n * understand and ignore others.\n */\nexport interface ClientLayoutItem {\n type: ClientLayoutItemType;\n label?: string;\n\n // FIELD\n field?: ClientLayoutItemField;\n\n // RELATION\n relation?: ClientLayoutItemRelation;\n\n // SECTION / GROUP — nested items\n items?: ClientLayoutItem[];\n\n // NAVIGATE\n navigate?: ClientLayoutItemNavigate;\n\n // VIEW — embedded view config (new flat format)\n view?: ClientViewMetadata;\n\n // RELATED_VIEW\n relatedView?: ClientLayoutItemRelatedView;\n\n // RELATED_OBJECT\n relatedObject?: ClientLayoutItemRelatedObject;\n\n // SEARCH\n search?: ClientLayoutItemSearch;\n\n /**\n * Archetype bindings for this item. The API publishes them on the item itself\n * (sibling of `view`), for two cases:\n * - object dashboard top-level: the type of the object itself → mrd-layout-section\n * renders a recognisable single-document view instead of generic fields;\n * - a VIEW / RELATED_VIEW item: → mrd-layout-section offers the document\n * collection view (folder tree) alongside the generic table.\n */\n archetypes?: ClientArchetype[];\n\n // ─── Flat API fields ──────────────────────────────────────────────────────\n // Shared / ACTION / VIEW\n name?: string;\n showTitle?: boolean;\n /** Embedded alternative view configs (new flat format). */\n alternativeViews?: Array<{ label?: string; dataClass?: string; fromClass?: string | null; filterClass?: string | null; view?: ClientViewMetadata }>;\n /** Toolbar buttons for embedded views. null/omitted = [\"NEW\",\"EXPORT\"]; [] = none. */\n actions?: string[] | null;\n /** Concrete subtypes available for create. When set, the NEW button expands into one button per entry. */\n createTypes?: ClientCreateType[] | null;\n\n // FIELD (flat)\n dataType?: ClientLayoutItemFieldDataType;\n required?: boolean;\n disabled?: boolean;\n multiple?: boolean;\n header?: boolean;\n defaultValue?: string | null;\n listItems?: ClientListValue[] | null;\n aggregate?: 'sum' | 'avg' | 'count' | null;\n placeholder?: string;\n accept?: string;\n maxSize?: number;\n decimalPrecision?: number;\n currencyCode?: string;\n historyEnabled?: boolean;\n\n // RELATION (flat)\n relatedClass?: string;\n mostSignificantClass?: string;\n displayType?: ClientLayoutItemRelationDisplayType;\n editBehavior?: ClientLayoutItemRelationEditBehavior | null;\n commonRelation?: string;\n dropdownValues?: ClientListValue[];\n\n // VIEW / NAVIGATE / SEARCH (flat) — API sends 'dataClass' (renamed from reserved 'class')\n dataClass?: string;\n\n // RELATED_VIEW (flat)\n fromClass?: string | null;\n filterClass?: string | null;\n /** Name of the relation on the related object that points back to the\n * `fromClass` parent (e.g. a document's `dossier` relation). When it equals\n * the `commons.document` archetype's `container` slot, the view is a single\n * container context (see mrd-document-list seeding). */\n inverseRelation?: string | null;\n /** How navigating out of this VIEW/RELATED_VIEW opens its target. Defaults to\n * `PAGE` (full navigation) when absent. mrd-layout-section reads this off the\n * item and includes it in the mrdNavigate event detail it relays upward. */\n navigateBehaviour?: ClientLayoutNavigateBehaviour;\n\n // NAVIGATE (flat)\n icon?: string | null;\n navigationType?: string | null;\n\n // ACTION (flat)\n actionType?: string;\n}\n\n// ─── Layout ───────────────────────────────────────────────────────────────────\n\nexport interface ClientLayout {\n type?: ClientLayoutType;\n label?: string;\n /** Used as the form title (mrd-form). */\n title?: string;\n tabPage?: boolean;\n items: ClientLayoutItem[];\n}\n\n// ─── ViewMetadata (from DashboardMetadata.views) ─────────────────────────────\n\nexport interface ViewFilter {\n name: string;\n value?: string | null;\n operator?: 'EQUALS' | 'FROM' | 'TO' | 'STARTS_WITH' | 'NOT_EMPTY' | 'EMPTY' | null;\n}\n\nexport interface ClientViewMetadata {\n name: string | null;\n defaultView: boolean;\n defaultSort?: string | null;\n /** Column definitions — each item is a FIELD or RELATION item. */\n values: ClientLayoutItem[];\n /** Static query-param filters baked into the view definition. */\n filter?: ViewFilter[] | null;\n type?: string;\n referenceType?: string | null;\n filterType?: string | null;\n singularLabel?: string;\n pluralLabel?: string;\n /**\n * Archetype bindings published on this VIEW / RELATED_VIEW item. When it\n * contains `commons.document`, mrd-layout-section offers the document\n * collection view (folder tree) alongside the generic table.\n */\n archetypes?: ClientArchetype[];\n}\n\n// ─── DashboardMetadata ────────────────────────────────────────────────────────\n\nexport interface ClientDashboardMetadata {\n layouts: ClientLayout[];\n /** Top-level archetypes on an object dashboard (the object's own type). Drives the\n * single-document view; passed to the main layout's mrd-layout-section. */\n archetypes?: ClientArchetype[];\n /** Legacy: view metadata map keyed by generated name. Absent in new flat format. */\n views?: Record<string, ClientViewMetadata>;\n layoutType: ClientLayoutType;\n _links?: Record<string, { href: string }>;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-helpers-CASS3akr.js","sources":["src/components/fields/field-helpers.tsx"],"sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { t } from '../../utils/i18n';\nimport { validateRequired } from '../../utils/validation';\n\n/**\n * Shared building blocks for the leaf field components.\n * `base` is the BEM block name, e.g. 'mrd-text-field'.\n */\n\nexport const FieldLabel: FunctionalComponent<{ base: string; label: string; required: boolean }> = ({ base, label, required }) =>\n label ? <label class={`${base}__label${required ? ` ${base}__label--required` : ''}`}>{label}</label> : null;\n\nexport const FieldError: FunctionalComponent<{ base: string; error: string }> = ({ base, error }) =>\n error ? <span class={`${base}__error`}>{error}</span> : null;\n\n/** Class string for the form control, with the --error modifier when applicable. */\nexport function controlClass(base: string, hasError: boolean, element: string = 'input'): string {\n return `${base}__${element}${hasError ? ` ${base}__${element}--error` : ''}`;\n}\n\n/** Returns the localised required-error, or '' when the value passes. */\nexport function requiredError(value: unknown, required: boolean, locale: string): string {\n return required && !validateRequired(value) ? t('required', locale) : '';\n}\n"],"names":[],"mappings":";;;;AAIA;;;AAGG;MAEU,UAAU,GAA4E,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAC3H,KAAK,GAAG,aAAO,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,OAAA,EAAU,QAAQ,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA,iBAAA,CAAmB,GAAG,EAAE,CAAA,CAAE,IAAG,KAAK,CAAS,GAAG;AAEnG,MAAM,UAAU,GAAyD,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAC9F,KAAK,GAAG,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,GAAG,IAAI,CAAA,OAAA,CAAS,EAAA,EAAG,KAAK,CAAQ,GAAG;AAE1D;AACM,SAAU,YAAY,CAAC,IAAY,EAAE,QAAiB,EAAE,UAAkB,OAAO,EAAA;AACrF,IAAA,OAAO,GAAG,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,EAAG,QAAQ,GAAG,IAAI,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,OAAA,CAAS,GAAG,EAAE,EAAE;AAC9E;AAEA;SACgB,aAAa,CAAC,KAAc,EAAE,QAAiB,EAAE,MAAc,EAAA;IAC7E,OAAO,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE;AAC1E;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload-common-D1ndi6cN.js","sources":["src/components/fields/file-upload-common.ts"],"sourcesContent":["import { t } from '../../utils/i18n';\n\n/**\n * Shared upload behaviour for mrd-file-field and mrd-image-field:\n * file validation, drop-zone class building and drag-drop wiring.\n */\n\n/** Validates a selected/dropped file; returns a localised error message or '' when accepted. */\nexport function validateUploadFile(file: File, maxSize: number, locale: string, requireImage = false): string {\n if (maxSize > 0 && file.size > maxSize) return t('file_too_large', locale);\n if (requireImage && !file.type.startsWith('image/')) return t('invalid_image', locale);\n return '';\n}\n\n/** BEM class string for the drop zone, e.g. base 'mrd-file-field' → 'mrd-file-field__zone …'. */\nexport function uploadZoneClass(base: string, opts: { dragging: boolean; error: boolean; disabled: boolean }): string {\n return [\n `${base}__zone`,\n opts.dragging ? `${base}__zone--dragging` : '',\n opts.error ? `${base}__zone--error` : '',\n opts.disabled ? `${base}__zone--disabled` : '',\n ].filter(Boolean).join(' ');\n}\n\n/** Drag-drop handlers for the drop zone; the component owns the dragging state and file handling. */\nexport function makeDragHandlers(setDragging: (dragging: boolean) => void, onFile: (file: File | null) => void) {\n return {\n onDragOver: (e: DragEvent) => {\n e.preventDefault();\n setDragging(true);\n },\n onDragLeave: () => setDragging(false),\n onDrop: (e: DragEvent) => {\n e.preventDefault();\n setDragging(false);\n onFile(e.dataTransfer?.files?.[0] ?? null);\n },\n };\n}\n"],"names":[],"mappings":";;AAEA;;;AAGG;AAEH;AACM,SAAU,kBAAkB,CAAC,IAAU,EAAE,OAAe,EAAE,MAAc,EAAE,YAAY,GAAG,KAAK,EAAA;IAClG,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO;AAAE,QAAA,OAAO,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1E,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAAE,QAAA,OAAO,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC;AACtF,IAAA,OAAO,EAAE;AACX;AAEA;AACM,SAAU,eAAe,CAAC,IAAY,EAAE,IAA8D,EAAA;IAC1G,OAAO;AACL,QAAA,CAAA,EAAG,IAAI,CAAA,MAAA,CAAQ;QACf,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAA,gBAAA,CAAkB,GAAG,EAAE;QAC9C,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAA,aAAA,CAAe,GAAG,EAAE;QACxC,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAA,gBAAA,CAAkB,GAAG,EAAE;KAC/C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B;AAEA;AACM,SAAU,gBAAgB,CAAC,WAAwC,EAAE,MAAmC,EAAA;IAC5G,OAAO;AACL,QAAA,UAAU,EAAE,CAAC,CAAY,KAAI;YAC3B,CAAC,CAAC,cAAc,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC;SAClB;AACD,QAAA,WAAW,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC;AACrC,QAAA,MAAM,EAAE,CAAC,CAAY,KAAI;;YACvB,CAAC,CAAC,cAAc,EAAE;YAClB,WAAW,CAAC,KAAK,CAAC;AAClB,YAAA,MAAM,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAC,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,0CAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC;SAC3C;KACF;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format-BAfsQfy1.js","sources":["src/utils/format.ts"],"sourcesContent":["export function formatNumber(value: number, locale: string, options?: Intl.NumberFormatOptions): string {\n if (value === null || value === undefined || isNaN(value)) return '';\n return new Intl.NumberFormat(locale, options).format(value);\n}\n\nexport function formatCurrency(amount: number, currency: string, locale: string): string {\n if (amount === null || amount === undefined || isNaN(amount)) return '';\n return new Intl.NumberFormat(locale, {\n style: 'currency',\n currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(amount);\n}\n\nexport function formatPercentage(value: number, locale: string, decimalPrecision = 2): string {\n if (value === null || value === undefined || isNaN(value)) return '';\n return new Intl.NumberFormat(locale, {\n style: 'percent',\n minimumFractionDigits: decimalPrecision,\n maximumFractionDigits: decimalPrecision,\n }).format(value);\n}\n\nexport function formatDate(value: string | Date, locale: string): string {\n if (!value) return '';\n const date = typeof value === 'string' ? new Date(value) : value;\n if (isNaN(date.getTime())) return '';\n return new Intl.DateTimeFormat(locale, { year: 'numeric', month: '2-digit', day: '2-digit' }).format(date);\n}\n\nexport function formatDateTime(value: string | Date, locale: string): string {\n if (!value) return '';\n const date = typeof value === 'string' ? new Date(value) : value;\n if (isNaN(date.getTime())) return '';\n return new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n }).format(date);\n}\n\nexport function formatTime(value: string, locale: string): string {\n if (!value) return '';\n // value is HH:MM or HH:MM:SS\n const [hours, minutes] = value.split(':').map(Number);\n const date = new Date();\n date.setHours(hours, minutes, 0, 0);\n return new Intl.DateTimeFormat(locale, { hour: '2-digit', minute: '2-digit' }).format(date);\n}\n\nexport function parseLocalizedNumber(str: string, locale: string): number | null {\n if (!str || !str.trim()) return null;\n // Detect decimal and thousands separators from the locale\n const parts = new Intl.NumberFormat(locale).formatToParts(1234567.89);\n const groupSep = parts.find((p: Intl.NumberFormatPart) => p.type === 'group')?.value ?? ',';\n const decimalSep = parts.find((p: Intl.NumberFormatPart) => p.type === 'decimal')?.value ?? '.';\n\n // Remove group separators, replace decimal separator with '.'\n const normalized = str\n .replace(new RegExp(`\\\\${groupSep}`, 'g'), '')\n .replace(new RegExp(`\\\\${decimalSep}`), '.')\n .replace('%', '')\n .trim();\n\n const parsed = parseFloat(normalized);\n return isNaN(parsed) ? null : parsed;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-B1IIkRF9.js","sources":["src/utils/i18n.ts"],"sourcesContent":["const translations: Record<string, Record<string, string>> = {\n nl: {\n required: 'Dit veld is verplicht',\n select_placeholder: 'Selecteer een optie',\n search_placeholder: 'Zoeken...',\n upload_file: 'Bestand uploaden',\n choose_file: 'Bestand kiezen',\n clear: 'Wissen',\n today: 'Vandaag',\n invalid_email: 'Voer een geldig e-mailadres in',\n invalid_url: 'Voer een geldige URL in',\n invalid_number: 'Voer een geldig getal in',\n drop_file_here: 'Sleep bestand hierheen of',\n browse: 'bladeren',\n file_too_large: 'Bestand is te groot',\n invalid_image: 'Selecteer een afbeeldingsbestand',\n search_results: 'Zoekresultaten',\n no_results: 'Geen resultaten gevonden',\n load_failed_retry: 'Laden mislukt — opnieuw proberen',\n loading: 'Laden...',\n submit: 'Opslaan',\n cancel: 'Annuleren',\n remove: 'Verwijderen',\n add: 'Toevoegen',\n yes: 'Ja',\n no: 'Nee',\n // mrd-table footer\n table_of: 'van',\n download: 'Downloaden',\n // mrd-table toolbar\n table_filter: 'Filteren',\n table_filter_hide: 'Filter verbergen',\n table_filter_active: 'actief',\n table_filter_clear_all: 'Alle filters wissen',\n table_new_record: 'Nieuw record',\n table_export_excel: 'Exporteer naar Excel',\n doc_view_switch: 'Weergave wisselen',\n doc_view_tree: 'Boomweergave',\n doc_view_list: 'Lijstweergave',\n // mrd-table filter popup\n filter_sorting: 'Sortering',\n filter_ascending: 'Oplopend',\n filter_descending: 'Aflopend',\n filter_section: 'Filter',\n filter_apply: 'Toepassen',\n filter_clear: 'Wissen',\n filter_contains: 'Bevat',\n filter_starts_with: 'Begint met',\n filter_equals: 'Gelijk aan',\n filter_has_value: 'Heeft waarde',\n filter_is_empty: 'Is leeg',\n filter_is_not_empty: 'Is niet leeg',\n filter_exact: 'Exact',\n filter_range: 'Bereik',\n filter_from: 'Van',\n filter_to: 'Tot',\n filter_all: 'Alle',\n filter_select_all: 'Alles',\n filter_select_none: 'Geen',\n filter_search_value: 'Zoekwaarde...',\n filter_no_support: 'Geen filtering beschikbaar voor dit veldtype.',\n // mrd-table textblock\n textblock_show_more: 'Meer tonen',\n close: 'Sluiten',\n // history badge\n history_until: 'tot',\n history_badge_tooltip: 'Vorige waarden',\n hyperlink_name: 'Linktekst (optioneel)',\n // mrd-document-list\n new_folder: 'Nieuwe folder',\n folder_name_placeholder: 'Foldernaam',\n folder_no_slash: \"Een foldernaam mag geen '/' bevatten\",\n folder_duplicate: 'Er bestaat al een folder met deze naam',\n doc_empty_drop: 'Nog geen documenten — sleep bestanden hierheen',\n // mrd-file-preview\n preview_unsupported: 'Geen voorbeeld beschikbaar voor dit bestandstype',\n preview_error: 'Voorbeeld laden mislukt',\n retry: 'Opnieuw proberen',\n },\n en: {\n required: 'This field is required',\n select_placeholder: 'Select an option',\n search_placeholder: 'Search...',\n upload_file: 'Upload file',\n choose_file: 'Choose file',\n clear: 'Clear',\n today: 'Today',\n invalid_email: 'Please enter a valid email address',\n invalid_url: 'Please enter a valid URL',\n invalid_number: 'Please enter a valid number',\n drop_file_here: 'Drop file here or',\n browse: 'browse',\n file_too_large: 'File is too large',\n invalid_image: 'Please select an image file',\n search_results: 'Search results',\n no_results: 'No results found',\n load_failed_retry: 'Failed to load — retry',\n loading: 'Loading...',\n submit: 'Save',\n cancel: 'Cancel',\n remove: 'Remove',\n add: 'Add',\n yes: 'Yes',\n no: 'No',\n // mrd-table footer\n table_of: 'of',\n download: 'Download',\n // mrd-table toolbar\n table_filter: 'Filter',\n table_filter_hide: 'Hide filter',\n table_filter_active: 'active',\n table_filter_clear_all: 'Clear all filters',\n table_new_record: 'New record',\n table_export_excel: 'Export to Excel',\n doc_view_switch: 'Switch view',\n doc_view_tree: 'Tree view',\n doc_view_list: 'List view',\n // mrd-table filter popup\n filter_sorting: 'Sorting',\n filter_ascending: 'Ascending',\n filter_descending: 'Descending',\n filter_section: 'Filter',\n filter_apply: 'Apply',\n filter_clear: 'Clear',\n filter_contains: 'Contains',\n filter_starts_with: 'Starts with',\n filter_equals: 'Equals',\n filter_has_value: 'Has value',\n filter_is_empty: 'Is empty',\n filter_is_not_empty: 'Is not empty',\n filter_exact: 'Exact',\n filter_range: 'Range',\n filter_from: 'From',\n filter_to: 'To',\n filter_all: 'All',\n filter_select_all: 'All',\n filter_select_none: 'None',\n filter_search_value: 'Search value...',\n filter_no_support: 'Filtering is not available for this field type.',\n // mrd-table textblock\n textblock_show_more: 'Show more',\n close: 'Close',\n // history badge\n history_until: 'until',\n history_badge_tooltip: 'Previous values',\n hyperlink_name: 'Link text (optional)',\n // mrd-document-list\n new_folder: 'New folder',\n folder_name_placeholder: 'Folder name',\n folder_no_slash: \"A folder name cannot contain '/'\",\n folder_duplicate: 'A folder with this name already exists',\n doc_empty_drop: 'No documents yet — drop files here',\n // mrd-file-preview\n preview_unsupported: 'No preview available for this file type',\n preview_error: 'Failed to load preview',\n retry: 'Retry',\n },\n ar: {\n required: 'هذا الحقل مطلوب',\n select_placeholder: 'اختر خياراً',\n search_placeholder: 'بحث...',\n upload_file: 'رفع ملف',\n choose_file: 'اختر ملفاً',\n clear: 'مسح',\n today: 'اليوم',\n invalid_email: 'يرجى إدخال عنوان بريد إلكتروني صحيح',\n invalid_url: 'يرجى إدخال رابط صحيح',\n invalid_number: 'يرجى إدخال رقم صحيح',\n drop_file_here: 'اسحب الملف هنا أو',\n browse: 'تصفح',\n file_too_large: 'الملف كبير جداً',\n invalid_image: 'يرجى اختيار ملف صورة',\n search_results: 'نتائج البحث',\n no_results: 'لم يتم العثور على نتائج',\n load_failed_retry: 'فشل التحميل — إعادة المحاولة',\n loading: 'جار التحميل...',\n submit: 'حفظ',\n cancel: 'إلغاء',\n remove: 'إزالة',\n add: 'إضافة',\n yes: 'نعم',\n no: 'لا',\n // mrd-table footer\n table_of: 'من أصل',\n download: 'تنزيل',\n // mrd-table toolbar\n table_filter: 'تصفية',\n table_filter_hide: 'إخفاء التصفية',\n table_filter_active: 'نشط',\n table_filter_clear_all: 'مسح جميع الفلاتر',\n table_new_record: 'سجل جديد',\n table_export_excel: 'تصدير إلى Excel',\n doc_view_switch: 'تبديل العرض',\n doc_view_tree: 'عرض شجري',\n doc_view_list: 'عرض القائمة',\n // mrd-table filter popup\n filter_sorting: 'الترتيب',\n filter_ascending: 'تصاعدي',\n filter_descending: 'تنازلي',\n filter_section: 'تصفية',\n filter_apply: 'تطبيق',\n filter_clear: 'مسح',\n filter_contains: 'يحتوي على',\n filter_starts_with: 'يبدأ بـ',\n filter_equals: 'يساوي',\n filter_has_value: 'له قيمة',\n filter_is_empty: 'فارغ',\n filter_is_not_empty: 'ليس فارغاً',\n filter_exact: 'دقيق',\n filter_range: 'نطاق',\n filter_from: 'من',\n filter_to: 'إلى',\n filter_all: 'الكل',\n filter_select_all: 'الكل',\n filter_select_none: 'لا شيء',\n filter_search_value: 'قيمة البحث...',\n filter_no_support: 'التصفية غير متاحة لهذا النوع من الحقول.',\n // mrd-table textblock\n textblock_show_more: 'عرض المزيد',\n close: 'إغلاق',\n // history badge\n history_until: 'حتى',\n history_badge_tooltip: 'القيم السابقة',\n hyperlink_name: 'نص الرابط (اختياري)',\n // mrd-file-preview\n preview_unsupported: 'لا تتوفر معاينة لهذا النوع من الملفات',\n preview_error: 'فشل تحميل المعاينة',\n retry: 'إعادة المحاولة',\n },\n fr: {\n required: 'Ce champ est obligatoire',\n select_placeholder: 'Sélectionner une option',\n search_placeholder: 'Rechercher...',\n upload_file: 'Télécharger un fichier',\n choose_file: 'Choisir un fichier',\n clear: 'Effacer',\n today: \"Aujourd'hui\",\n invalid_email: 'Veuillez saisir une adresse e-mail valide',\n invalid_url: 'Veuillez saisir une URL valide',\n invalid_number: 'Veuillez saisir un nombre valide',\n drop_file_here: 'Déposez le fichier ici ou',\n browse: 'parcourir',\n file_too_large: 'Le fichier est trop volumineux',\n invalid_image: 'Veuillez sélectionner un fichier image',\n search_results: 'Résultats de recherche',\n no_results: 'Aucun résultat trouvé',\n load_failed_retry: 'Échec du chargement — réessayer',\n loading: 'Chargement...',\n submit: 'Enregistrer',\n cancel: 'Annuler',\n remove: 'Supprimer',\n add: 'Ajouter',\n yes: 'Oui',\n no: 'Non',\n // mrd-table footer\n table_of: 'sur',\n download: 'Télécharger',\n // mrd-table toolbar\n table_filter: 'Filtrer',\n table_filter_hide: 'Masquer le filtre',\n table_filter_active: 'actif',\n table_filter_clear_all: 'Effacer tous les filtres',\n table_new_record: 'Nouvel enregistrement',\n table_export_excel: 'Exporter vers Excel',\n doc_view_switch: 'Changer de vue',\n doc_view_tree: 'Vue arborescente',\n doc_view_list: 'Vue liste',\n // mrd-table filter popup\n filter_sorting: 'Tri',\n filter_ascending: 'Croissant',\n filter_descending: 'Décroissant',\n filter_section: 'Filtre',\n filter_apply: 'Appliquer',\n filter_clear: 'Effacer',\n filter_contains: 'Contient',\n filter_starts_with: 'Commence par',\n filter_equals: 'Égal à',\n filter_has_value: 'A une valeur',\n filter_is_empty: 'Est vide',\n filter_is_not_empty: \"N'est pas vide\",\n filter_exact: 'Exact',\n filter_range: 'Plage',\n filter_from: 'De',\n filter_to: 'À',\n filter_all: 'Tous',\n filter_select_all: 'Tous',\n filter_select_none: 'Aucun',\n filter_search_value: 'Valeur de recherche...',\n filter_no_support: \"Le filtrage n'est pas disponible pour ce type de champ.\",\n // mrd-table textblock\n textblock_show_more: 'Voir plus',\n close: 'Fermer',\n // history badge\n history_until: \"jusqu'au\",\n history_badge_tooltip: 'Valeurs précédentes',\n hyperlink_name: 'Texte du lien (optionnel)',\n // mrd-file-preview\n preview_unsupported: \"Aucun aperçu disponible pour ce type de fichier\",\n preview_error: \"Échec du chargement de l'aperçu\",\n retry: 'Réessayer',\n },\n de: {\n required: 'Dieses Feld ist erforderlich',\n select_placeholder: 'Option auswählen',\n search_placeholder: 'Suchen...',\n upload_file: 'Datei hochladen',\n choose_file: 'Datei auswählen',\n clear: 'Löschen',\n today: 'Heute',\n invalid_email: 'Bitte geben Sie eine gültige E-Mail-Adresse ein',\n invalid_url: 'Bitte geben Sie eine gültige URL ein',\n invalid_number: 'Bitte geben Sie eine gültige Zahl ein',\n drop_file_here: 'Datei hier ablegen oder',\n browse: 'durchsuchen',\n file_too_large: 'Datei ist zu groß',\n invalid_image: 'Bitte eine Bilddatei auswählen',\n search_results: 'Suchergebnisse',\n no_results: 'Keine Ergebnisse gefunden',\n load_failed_retry: 'Laden fehlgeschlagen — erneut versuchen',\n loading: 'Laden...',\n submit: 'Speichern',\n cancel: 'Abbrechen',\n remove: 'Entfernen',\n add: 'Hinzufügen',\n yes: 'Ja',\n no: 'Nein',\n // mrd-table footer\n table_of: 'von',\n download: 'Herunterladen',\n // mrd-table toolbar\n table_filter: 'Filtern',\n table_filter_hide: 'Filter ausblenden',\n table_filter_active: 'aktiv',\n table_filter_clear_all: 'Alle Filter löschen',\n table_new_record: 'Neuer Eintrag',\n table_export_excel: 'Als Excel exportieren',\n doc_view_switch: 'Ansicht wechseln',\n doc_view_tree: 'Baumansicht',\n doc_view_list: 'Listenansicht',\n // mrd-table filter popup\n filter_sorting: 'Sortierung',\n filter_ascending: 'Aufsteigend',\n filter_descending: 'Absteigend',\n filter_section: 'Filter',\n filter_apply: 'Anwenden',\n filter_clear: 'Löschen',\n filter_contains: 'Enthält',\n filter_starts_with: 'Beginnt mit',\n filter_equals: 'Gleich',\n filter_has_value: 'Hat Wert',\n filter_is_empty: 'Ist leer',\n filter_is_not_empty: 'Ist nicht leer',\n filter_exact: 'Genau',\n filter_range: 'Bereich',\n filter_from: 'Von',\n filter_to: 'Bis',\n filter_all: 'Alle',\n filter_select_all: 'Alle',\n filter_select_none: 'Keine',\n filter_search_value: 'Suchwert...',\n filter_no_support: 'Filterung ist für diesen Feldtyp nicht verfügbar.',\n // mrd-table textblock\n textblock_show_more: 'Mehr anzeigen',\n close: 'Schließen',\n // history badge\n history_until: 'bis',\n history_badge_tooltip: 'Vorherige Werte',\n hyperlink_name: 'Linktext (optional)',\n // mrd-file-preview\n preview_unsupported: 'Keine Vorschau für diesen Dateityp verfügbar',\n preview_error: 'Vorschau konnte nicht geladen werden',\n retry: 'Erneut versuchen',\n },\n es: {\n required: 'Este campo es obligatorio',\n select_placeholder: 'Seleccionar una opción',\n search_placeholder: 'Buscar...',\n upload_file: 'Subir archivo',\n choose_file: 'Elegir archivo',\n clear: 'Borrar',\n today: 'Hoy',\n invalid_email: 'Por favor, introduzca una dirección de correo electrónico válida',\n invalid_url: 'Por favor, introduzca una URL válida',\n invalid_number: 'Por favor, introduzca un número válido',\n drop_file_here: 'Suelte el archivo aquí o',\n browse: 'explorar',\n file_too_large: 'El archivo es demasiado grande',\n invalid_image: 'Seleccione un archivo de imagen',\n search_results: 'Resultados de búsqueda',\n no_results: 'No se encontraron resultados',\n load_failed_retry: 'Error al cargar — reintentar',\n loading: 'Cargando...',\n submit: 'Guardar',\n cancel: 'Cancelar',\n remove: 'Eliminar',\n add: 'Añadir',\n yes: 'Sí',\n no: 'No',\n // mrd-table footer\n table_of: 'de',\n download: 'Descargar',\n // mrd-table toolbar\n table_filter: 'Filtrar',\n table_filter_hide: 'Ocultar filtro',\n table_filter_active: 'activo',\n table_filter_clear_all: 'Borrar todos los filtros',\n table_new_record: 'Nuevo registro',\n table_export_excel: 'Exportar a Excel',\n doc_view_switch: 'Cambiar vista',\n doc_view_tree: 'Vista de árbol',\n doc_view_list: 'Vista de lista',\n // mrd-table filter popup\n filter_sorting: 'Ordenación',\n filter_ascending: 'Ascendente',\n filter_descending: 'Descendente',\n filter_section: 'Filtro',\n filter_apply: 'Aplicar',\n filter_clear: 'Borrar',\n filter_contains: 'Contiene',\n filter_starts_with: 'Empieza por',\n filter_equals: 'Igual a',\n filter_has_value: 'Tiene valor',\n filter_is_empty: 'Está vacío',\n filter_is_not_empty: 'No está vacío',\n filter_exact: 'Exacto',\n filter_range: 'Rango',\n filter_from: 'Desde',\n filter_to: 'Hasta',\n filter_all: 'Todos',\n filter_select_all: 'Todos',\n filter_select_none: 'Ninguno',\n filter_search_value: 'Valor de búsqueda...',\n filter_no_support: 'El filtrado no está disponible para este tipo de campo.',\n // mrd-table textblock\n textblock_show_more: 'Mostrar más',\n close: 'Cerrar',\n // history badge\n history_until: 'hasta',\n history_badge_tooltip: 'Valores anteriores',\n hyperlink_name: 'Texto del enlace (opcional)',\n // mrd-file-preview\n preview_unsupported: 'Vista previa no disponible para este tipo de archivo',\n preview_error: 'Error al cargar la vista previa',\n retry: 'Reintentar',\n },\n it: {\n required: 'Questo campo è obbligatorio',\n select_placeholder: \"Seleziona un'opzione\",\n search_placeholder: 'Cerca...',\n upload_file: 'Carica file',\n choose_file: 'Scegli file',\n clear: 'Cancella',\n today: 'Oggi',\n invalid_email: 'Inserisci un indirizzo email valido',\n invalid_url: 'Inserisci un URL valido',\n invalid_number: 'Inserisci un numero valido',\n drop_file_here: 'Trascina il file qui o',\n browse: 'sfoglia',\n file_too_large: 'Il file è troppo grande',\n invalid_image: 'Seleziona un file immagine',\n search_results: 'Risultati della ricerca',\n no_results: 'Nessun risultato trovato',\n load_failed_retry: 'Caricamento non riuscito — riprova',\n loading: 'Caricamento...',\n submit: 'Salva',\n cancel: 'Annulla',\n remove: 'Rimuovi',\n add: 'Aggiungi',\n yes: 'Sì',\n no: 'No',\n // mrd-table footer\n table_of: 'di',\n download: 'Scarica',\n // mrd-table toolbar\n table_filter: 'Filtra',\n table_filter_hide: 'Nascondi filtro',\n table_filter_active: 'attivo',\n table_filter_clear_all: 'Cancella tutti i filtri',\n table_new_record: 'Nuovo record',\n table_export_excel: 'Esporta in Excel',\n doc_view_switch: 'Cambia vista',\n doc_view_tree: 'Vista ad albero',\n doc_view_list: 'Vista elenco',\n // mrd-table filter popup\n filter_sorting: 'Ordinamento',\n filter_ascending: 'Crescente',\n filter_descending: 'Decrescente',\n filter_section: 'Filtro',\n filter_apply: 'Applica',\n filter_clear: 'Cancella',\n filter_contains: 'Contiene',\n filter_starts_with: 'Inizia con',\n filter_equals: 'Uguale a',\n filter_has_value: 'Ha valore',\n filter_is_empty: 'È vuoto',\n filter_is_not_empty: 'Non è vuoto',\n filter_exact: 'Esatto',\n filter_range: 'Intervallo',\n filter_from: 'Da',\n filter_to: 'A',\n filter_all: 'Tutti',\n filter_select_all: 'Tutti',\n filter_select_none: 'Nessuno',\n filter_search_value: 'Valore di ricerca...',\n filter_no_support: 'Il filtro non è disponibile per questo tipo di campo.',\n // mrd-table textblock\n textblock_show_more: 'Mostra altro',\n close: 'Chiudi',\n // history badge\n history_until: 'fino a',\n history_badge_tooltip: 'Valori precedenti',\n hyperlink_name: 'Testo del collegamento (opzionale)',\n // mrd-file-preview\n preview_unsupported: 'Nessuna anteprima disponibile per questo tipo di file',\n preview_error: \"Impossibile caricare l'anteprima\",\n retry: 'Riprova',\n },\n uk: {\n required: \"Це поле обов'язкове\",\n select_placeholder: 'Виберіть варіант',\n search_placeholder: 'Пошук...',\n upload_file: 'Завантажити файл',\n choose_file: 'Вибрати файл',\n clear: 'Очистити',\n today: 'Сьогодні',\n invalid_email: 'Будь ласка, введіть дійсну адресу електронної пошти',\n invalid_url: 'Будь ласка, введіть дійсну URL-адресу',\n invalid_number: 'Будь ласка, введіть дійсне число',\n drop_file_here: 'Перетягніть файл сюди або',\n browse: 'огляд',\n file_too_large: 'Файл занадто великий',\n invalid_image: 'Будь ласка, виберіть файл зображення',\n search_results: 'Результати пошуку',\n no_results: 'Результатів не знайдено',\n load_failed_retry: 'Не вдалося завантажити — повторити',\n loading: 'Завантаження...',\n submit: 'Зберегти',\n cancel: 'Скасувати',\n remove: 'Видалити',\n add: 'Додати',\n yes: 'Так',\n no: 'Ні',\n // mrd-table footer\n table_of: 'з',\n download: 'Завантажити',\n // mrd-table toolbar\n table_filter: 'Фільтрувати',\n table_filter_hide: 'Сховати фільтр',\n table_filter_active: 'активний',\n table_filter_clear_all: 'Очистити всі фільтри',\n table_new_record: 'Новий запис',\n table_export_excel: 'Експортувати до Excel',\n doc_view_switch: 'Змінити вигляд',\n doc_view_tree: 'Деревоподібний вигляд',\n doc_view_list: 'Список',\n // mrd-table filter popup\n filter_sorting: 'Сортування',\n filter_ascending: 'За зростанням',\n filter_descending: 'За спаданням',\n filter_section: 'Фільтр',\n filter_apply: 'Застосувати',\n filter_clear: 'Очистити',\n filter_contains: 'Містить',\n filter_starts_with: 'Починається з',\n filter_equals: 'Дорівнює',\n filter_has_value: 'Має значення',\n filter_is_empty: 'Порожнє',\n filter_is_not_empty: 'Не порожнє',\n filter_exact: 'Точно',\n filter_range: 'Діапазон',\n filter_from: 'Від',\n filter_to: 'До',\n filter_all: 'Всі',\n filter_select_all: 'Всі',\n filter_select_none: 'Жодного',\n filter_search_value: 'Значення для пошуку...',\n filter_no_support: 'Фільтрування недоступне для цього типу поля.',\n // mrd-table textblock\n textblock_show_more: 'Показати більше',\n close: 'Закрити',\n // history badge\n history_until: 'до',\n history_badge_tooltip: 'Попередні значення',\n hyperlink_name: \"Текст посилання (необов'язково)\",\n // mrd-file-preview\n preview_unsupported: 'Попередній перегляд недоступний для цього типу файлу',\n preview_error: 'Не вдалося завантажити попередній перегляд',\n retry: 'Повторити',\n },\n};\n\nexport function t(key: string, locale: string): string {\n const lang = (locale ?? 'en').split('-')[0].toLowerCase();\n const dict = translations[lang] ?? translations['en'];\n return dict[key] ?? translations['en'][key] ?? key;\n}\n"],"names":[],"mappings":"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"}
|